gmp 0.5.23 → 0.5.41

Sign up to get free protection for your applications and to get access to all the features.
@@ -98,7 +98,7 @@ class TC_precision < Test::Unit::TestCase
98
98
  assert_raise(RangeError) { GMP::F.default_prec = -64 }
99
99
  assert_raise(TypeError) { GMP::F.default_prec = "Cow" }
100
100
  rescue NameError => err
101
- raise unless err.to_s == "uninitialized constant GMP::MPFR_VERSION"
101
+ raise unless err.to_s =~ /uninitialized constant:? GMP::MPFR_VERSION/
102
102
  GMP::F.default_prec = 100
103
103
  assert_equal(128, GMP::F.default_prec, "GMP::F.default_prec should be assignable.")
104
104
  GMP::F.default_prec = 130
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_Hashes < Test::Unit::TestCase
2
4
  def setup
3
5
  end
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_logical_roots < Test::Unit::TestCase
2
4
  def setup
3
5
  @a = GMP::Z.new(100)
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_MPFR_Constants < Test::Unit::TestCase
2
4
  def test_mpfr_constants
3
5
  assert_instance_of(String, GMP::MPFR_VERSION, "GMP::MPFR_VERSION should be a String")
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_MPFR_Functions < Test::Unit::TestCase
2
4
  def setup
3
5
  @a = GMP::F(1)
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_MPFR_Random < Test::Unit::TestCase
2
4
  def setup
3
5
  end
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_MPFR_Rounding < Test::Unit::TestCase
2
4
  def setup
3
5
  if GMP::MPFR_VERSION < "3.0.0"
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_Q < Test::Unit::TestCase
2
4
  def test_init_null
3
5
  assert_equal(GMP::Q.new(), 0, "GMP::Q.new() should initialize to 0")
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  # [Q op Q, Q op Z, Z op Q, Q op FixNum, Q op BigNum, FixNum op Q, BigNum op Q]
2
4
  class TC_Q_Basic < Test::Unit::TestCase
3
5
  def setup
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_Random < Test::Unit::TestCase
2
4
  def setup
3
5
  end
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_sgn_neg_abs < Test::Unit::TestCase
2
4
  def setup
3
5
  @a=GMP::Z.new(10)
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_swap < Test::Unit::TestCase
2
4
  def setup
3
5
  @a=GMP::Z.new(100)
@@ -57,7 +57,7 @@ class TC_Z < Test::Unit::TestCase
57
57
  b = GMP::Z(17)
58
58
  a_factors = [1,2,3,4,5,6,8,10,12,15,20,24,30,40,60,120]
59
59
  a_factors.each do |d|
60
- assert_true(a.divisible?(d), "GMP::Z#divisible? ui should be false: #{a}.divisible? #{d}")
60
+ assert_true(a.divisible?(d), "GMP::Z#divisible? ui should be true: #{a}.divisible? #{d}")
61
61
  end
62
62
  ((1..120).to_a - a_factors).each do |d|
63
63
  assert_false(a.divisible?(d), "GMP::Z#divisible? ui should be false: #{a}.divisible? #{d}")
@@ -74,7 +74,7 @@ class TC_Z < Test::Unit::TestCase
74
74
  743*109_582_894_312_963_583,
75
75
  29*743*109_582_894_312_963_583]
76
76
  a_factors.each do |d|
77
- assert_true(a.divisible?(d), "GMP::Z#divisible? bignum should be false: #{a}.divisible? #{d}")
77
+ assert_true(a.divisible?(d), "GMP::Z#divisible? bignum should be true: #{a}.divisible? #{d}")
78
78
  end
79
79
  a_factors.map { |n| n*2 }.each do |d|
80
80
  assert_false(a.divisible?(d), "GMP::Z#divisible? ui should be false: #{a}.divisible? #{d}")
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  # Tested: [Z op (Z,Z), Z op (Z,Fixnum), Z op (Z,Bignum),
2
4
  # Z op (Fixnum,Z), Z op (Fixnum,Fixnum), Z op (Fixnum,Bignum)
3
5
  # Z op (Bignum,Z), Z op (Bignum,Bignum), Z op (Bignum,Fixnum)]
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  # Tested: [Z op Z, Z op FixNum, Z op BigNum, FixNum op Z, BigNum op Z]
2
4
  # Things are tested both ways because the implementation is asymetrical
3
5
  class TC_Z_Basic < Test::Unit::TestCase
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_Z_Exponentiation < Test::Unit::TestCase
2
4
  def setup
3
5
  @a = GMP::Z.new(100)
@@ -6,7 +8,7 @@ class TC_Z_Exponentiation < Test::Unit::TestCase
6
8
  end
7
9
 
8
10
  def test_exponentiation
9
- assert_equal(GMP::Z(10000000000), @a**5, "GMP::Z should **(Fixnum) correctly")
11
+ assert_equal(@a**5, GMP::Z(10000000000), "GMP::Z should **(Fixnum) correctly")
10
12
  assert_equal(GMP::Z("100000000000000000000000000000000"), @a**@b, "GMP::Z should **(GMP::Z) correctly")
11
13
  assert_equal(GMP::Z(65536), 2**@b, "Fixnum should **(GMP::Z) correctly")
12
14
  end
@@ -0,0 +1,100 @@
1
+ require './test_helper'
2
+
3
+ class TC_Z_Functional_Mappings < Test::Unit::TestCase
4
+ def setup
5
+ @_64bit = 1_000_000_000_000.is_a? Fixnum
6
+ @xp1 = 7
7
+ @xn1 = -5
8
+ @b1 = 2**70
9
+ # TODO: Add edge cases along Fixnum/Bignum border!!
10
+ @z1 = GMP::Z(12)
11
+ end
12
+
13
+ # 01 mpz_t__mpz_t_or_ui__to__mpz_t__returns__void
14
+ def test_FUNC_MAP__Z_ZUI__TO__Z__RETURNS__VOID
15
+ functions = [:add, :addmul, :submul, :divexact, :lcm]
16
+ rop = GMP::Z(0)
17
+ op1s = [@z1]
18
+ op2s = [@xp1, @xn1, @b1, @z1]
19
+ functions.each do |f|
20
+ op1s.each do |op1|
21
+ op2s.each do |op2|
22
+ assert_nothing_raised("GMP::Z.#{f.to_s} should not raise when passed (#{rop.class}, #{op1.class}, #{op2.class})") {
23
+ GMP::Z.send(f, rop, op1, op2)
24
+ }
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ # 02 mpz_t_or_ui__mpz_t_or_ui__to__mpz_t__returns__void
31
+ def test_FUNC_MAP__ZUI_ZUI__TO__Z__RETURNS__VOID
32
+ functions = [:sub]
33
+ rop = GMP::Z(0)
34
+ op1s = [@xp1, @xn1, @b1, @z1]
35
+ op2s = [@xp1, @xn1, @b1, @z1]
36
+ functions.each do |f|
37
+ op1s.each do |op1|
38
+ op2s.each do |op2|
39
+ assert_nothing_raised("GMP::Z.#{f.to_s} should not raise when passed (#{rop.class}, #{op1.class}, #{op2.class})") {
40
+ GMP::Z.send(f, rop, op1, op2)
41
+ }
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ # 03 mpz_t__mpz_t_or_si_or_ui__to__mpz_t__returns__void
48
+ def test_FUNC_MAP__Z_ZSIUI__TO__Z__RETURNS__VOID
49
+ functions = [:mul]
50
+ rop = GMP::Z(0)
51
+ op1s = [@z1]
52
+ op2s = [@xp1, @xn1, @b1, @z1]
53
+ functions.each do |f|
54
+ op1s.each do |op1|
55
+ op2s.each do |op2|
56
+ assert_nothing_raised("GMP::Z.#{f.to_s} should not raise when passed (#{rop.class}, #{op1.class}, #{op2.class})") {
57
+ GMP::Z.send(f, rop, op1, op2)
58
+ }
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ # 04 mpz_t__mp_bitcnt_t__to__mpz_t__returns__void
65
+ def test_FUNC_MAP__Z_BITCNT__TO__Z__RETURNS__VOID
66
+ functions = [:mul_2exp, :cdiv_q_2exp, :cdiv_r_2exp, :fdiv_q_2exp, :fdiv_r_2exp, :tdiv_q_2exp, :tdiv_r_2exp]
67
+ rop = GMP::Z(0)
68
+ op1s = [@z1]
69
+ functions.each do |f|
70
+ op1s.each do |op1|
71
+ op2s = [@xp1]
72
+ op2s.each do |op2|
73
+ assert_nothing_raised("GMP::Z.#{f.to_s} should not raise when passed (#{rop.class}, #{op1.class}, #{op2.class})") {
74
+ GMP::Z.send(f, rop, op1, op2)
75
+ }
76
+ end
77
+ op2s = [@xn1]
78
+ op2s.each do |op2|
79
+ assert_raise(RangeError, "GMP::Z.#{f.to_s} should raise a RangeError when passed (#{rop.class}, #{op1.class}, #{op2.class})") {
80
+ GMP::Z.send(f, rop, op1, op2)
81
+ }
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ # 05 mpz_t__to__mpz_t__returns__void
88
+ def test_FUNC_MAP__Z__TO__Z__RETURNS__VOID
89
+ functions = [:neg, :abs, :sqrt, :nextprime, :com]
90
+ rop = GMP::Z(0)
91
+ op1s = [@z1]
92
+ functions.each do |f|
93
+ op1s.each do |op1|
94
+ assert_nothing_raised("GMP::Z.#{f.to_s} should not raise when passed (#{rop.class}, #{op1.class})") {
95
+ GMP::Z.send(f, rop, op1)
96
+ }
97
+ end
98
+ end
99
+ end
100
+ end
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_Z_GCD_LCM_Invert < Test::Unit::TestCase
2
4
  def setup
3
5
  @a = GMP::Z( 24) # 2^3 * 3
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_Z_Jacobi_Legendre_Remove < Test::Unit::TestCase
2
4
  def setup
3
5
  @one = GMP::Z(1)
@@ -1,3 +1,5 @@
1
+ require './test_helper'
2
+
1
3
  class TC_ZeroDivisionExceptions < Test::Unit::TestCase
2
4
  def setup
3
5
  @a = GMP::Z.new(10)
@@ -14,4 +16,4 @@ class TC_ZeroDivisionExceptions < Test::Unit::TestCase
14
16
  assert_raise(ZeroDivisionError) { @c/0 }
15
17
  assert_raise(ZeroDivisionError) { @c/@d }
16
18
  end
17
- end
19
+ end
@@ -3,6 +3,9 @@
3
3
  require './test_helper'
4
4
 
5
5
  require './tc_constants'
6
+ require './tc_division'
7
+ require './tc_f_precision'
8
+ require './tc_f_arithmetics_coersion'
6
9
  require './tc_z'
7
10
  require './tc_z_basic'
8
11
  require './tc_z_addmul'
@@ -14,19 +17,17 @@ require './tc_z_shifts_last_bits'
14
17
  require './tc_z_jac_leg_rem'
15
18
  require './tc_z_gcd_lcm_invert'
16
19
  require './tc_q'
17
- require './tc_cmp'
18
20
  require './tc_q_basic'
21
+ require './tc_cmp'
19
22
  require './tc_zerodivisionexceptions'
20
23
  require './tc_sgn_neg_abs'
21
24
  require './tc_fib_fac_nextprime'
22
25
  require './tc_swap'
23
26
  require './tc_floor_ceil_truncate'
24
27
  require './tc_logical_roots'
25
- require './tc_f_precision'
26
- require './tc_f_arithmetics_coersion'
27
- require './tc_division'
28
28
  require './tc_random'
29
29
  require './tc_hashes'
30
+ require './tc_z_functional_mappings'
30
31
 
31
32
  require './gmp_tgcd'
32
33
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 89
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 23
10
- version: 0.5.23
9
+ - 41
10
+ version: 0.5.41
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tomasz Wegrzanowski
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-10-04 00:00:00 -07:00
19
+ date: 2010-11-17 00:00:00 -07:00
20
20
  default_executable:
21
21
  dependencies: []
22
22
 
@@ -75,6 +75,7 @@ files:
75
75
  - test/tc_z_addmul.rb
76
76
  - test/tc_z_basic.rb
77
77
  - test/tc_z_exponentiation.rb
78
+ - test/tc_z_functional_mappings.rb
78
79
  - test/tc_z_gcd_lcm_invert.rb
79
80
  - test/tc_z_jac_leg_rem.rb
80
81
  - test/tc_z_logic.rb
@@ -94,6 +95,7 @@ files:
94
95
  - benchmark/gcd
95
96
  - benchmark/gexpr.c
96
97
  - benchmark/multiply
98
+ - benchmark/multiply.fnl
97
99
  - benchmark/multiply.gc
98
100
  - benchmark/pi
99
101
  - benchmark/README