**** Merged from MCS ****
[mono-project.git] / mcs / class / corlib / Test / Mono.Math / GcdBigTest.cs
blobeec5d178fcc26c62a000fe30fb2c2bab01cdaab3
1 //
2 // MonoTests.Mono.Math.GcdBigTest.cs
3 //
4 // Authors:
5 // Ben Maurer
6 //
7 // Copyright (c) 2003 Ben Maurer. All rights reserved
8 //
10 using System;
11 using Mono.Math;
12 using NUnit.Framework;
14 namespace MonoTests.Mono.Math {
16 public abstract class GcdBig_Base : BigIntegerTestSet {
18 BigInteger A, B, aGcdB;
20 public GcdBig_Base()
22 A = new BigInteger(a);
23 B = new BigInteger(b);
24 aGcdB = new BigInteger(ExpectedAgcdB);
27 public abstract uint[] a {
28 get;
30 public abstract uint[] b {
31 get;
34 public abstract uint[] ExpectedAgcdB {
35 get;
38 [Test]
39 public void GcdPP()
41 Expect( A.gcd(B), aGcdB );
46 public class GcdBig_Rand2048a512b : GcdBig_Base {
48 public override uint[] a {
49 get {
50 return new uint[] {
51 0xaae18fa1, 0x58e1e9fc, 0x836350a0, 0x23d2a12d, 0x1aec1bdc, 0xad4a3b30,
52 0x40dc1d27, 0x625277fb, 0xddfbee25, 0xc1820dac, 0x4418603a, 0x5aec122c,
53 0x58b70181, 0x129d6b33, 0x6c4ed37e, 0x70808dd0, 0xed55b079, 0x706f15f3,
54 0x1a84b3ac, 0x088f1679, 0xcbf2be66, 0xb97a885e, 0xa2c95b95, 0xd44ebb83,
55 0x69351a38, 0x21d3cdb2, 0x30844c5c, 0x5abf8d7a, 0xb663c3de, 0x3ce2fcc5,
56 0x80b42a05, 0xa0a8aca3, 0x31d42948, 0x469d8ad5, 0xe0f66f7e, 0x3250dac1,
57 0xb4450067, 0xb247ad34, 0xbfd74c70, 0xfd1e29fa, 0x4050dc77, 0x827763b9,
58 0xba41410d, 0x42494b62, 0x99ef13a1, 0x55c957ec, 0x1e7dd0fc, 0x6c4cccdf,
59 0x981128e0, 0xc7c01688, 0x4ae5116c, 0x9b24d3c8, 0x623af290, 0x31ac1c1e,
60 0x0891f2f1, 0x678ab7ee, 0x6169af02, 0x2479511c, 0x7cea2114, 0xf13d541c,
61 0x0f54f253, 0xf5dd2553, 0xc0ea9613, 0x84a0c7b2
66 public override uint[] b {
67 get {
68 return new uint[] {
69 0x83ab64ef, 0x1350b335, 0xbf5f150d, 0x399a2487, 0xc1b76d63, 0xdf3e59ad,
70 0x2ed3b4fa, 0x9a6ad972, 0xb6e791c5, 0xdd7a8664, 0x802f8364, 0xf1a8617f,
71 0xb036a74a, 0x452ac130, 0x727e194f, 0x3dd8cfe8
76 public override uint[] ExpectedAgcdB {
77 get {
78 return new uint[] {
79 0x00000006
85 public class GcdBig_Rand512a512b : GcdBig_Base {
87 public override uint[] a {
88 get {
89 return new uint[] {
90 0x7bc1fb0e, 0x0335547e, 0x0e85b746, 0x1e7554d2, 0x77515958, 0xadf072c8,
91 0xdb03eb22, 0xdcedf7e2, 0x8f923f6a, 0xf124052d, 0x55d623f4, 0x29083f62,
92 0x66eaa78e, 0xfe819e63, 0xf8229bde, 0xe155c05b
97 public override uint[] b {
98 get {
99 return new uint[] {
100 0xe5320f2e, 0x379803d7, 0x24363d84, 0xfd61c43c, 0xa4e6ca6f, 0x16628f59,
101 0xddeb6557, 0xd904639c, 0x55f59c2f, 0x6ba21e54, 0x81107aa9, 0x47a4653c,
102 0xcc0a5889, 0xb6abcaec, 0xf6b58d60, 0xf8cc7eeb
107 public override uint[] ExpectedAgcdB {
108 get {
109 return new uint[] {
110 0x00000001