Diff tests: bcmod

Function:
Description: Get the modulus of the left_operand using modulus.
Version A:
Version B:
bcmod tests version 41bcmod tests version 44
 1function bcmod_tests() {
 1function bcmod_tests() {
 2
 2
 3  // API reference: http://docs.jquery.com/QUnit
 3  // API reference: http://docs.jquery.com/QUnit
 4  module( "bcmod" );
 4  module( "bcmod" );
 5
 5
 6  test( "bcmod", function() {
 6  test( "bcmod", function() {
 7
 7
 8    // some basic modulus cases:
 8    // some basic modulus cases:
 9    equal( bcmod( '4', '2' ), '0', "bcmod( '4', '2' )" );
 9    equal( bcmod( '4', '2' ), '0', "bcmod( '4', '2' )" );
10    equal( bcmod( '2', '4' ), '2', "bcmod( '2', '4' )" );
10    equal( bcmod( '2', '4' ), '2', "bcmod( '2', '4' )" );
11    equal( bcmod( '123456', '1000' ), '456', "bcmod( '123456', '1000' )" );
11    equal( bcmod( '123456', '1000' ), '456', "bcmod( '123456', '1000' )" );
12    equal( bcmod( '12345', '1000' ), '345', "bcmod( '12345', '1000' )" );
12    equal( bcmod( '12345', '1000' ), '345', "bcmod( '12345', '1000' )" );
13    equal( bcmod( '1234', '1000' ), '234', "bcmod( '1234', '1000' )" );
13    equal( bcmod( '1234', '1000' ), '234', "bcmod( '1234', '1000' )" );
14    equal( bcmod( '123', '1000' ), '123', "bcmod( '123', '1000' )" );
14    equal( bcmod( '123', '1000' ), '123', "bcmod( '123', '1000' )" );
15    equal( bcmod( '12', '1000' ), '12', "bcmod( '12', '1000' )" );
15    equal( bcmod( '12', '1000' ), '12', "bcmod( '12', '1000' )" );
16    equal( bcmod( '1', '1000' ), '1', "bcmod( '1', '1000' )" );
16    equal( bcmod( '1', '1000' ), '1', "bcmod( '1', '1000' )" );
17    equal( bcmod( '123456', '100' ), '56', "bcmod( '123456', '100' )" );
17    equal( bcmod( '123456', '100' ), '56', "bcmod( '123456', '100' )" );
18    equal( bcmod( '12345', '100' ), '45', "bcmod( '12345', '100' )" );
18    equal( bcmod( '12345', '100' ), '45', "bcmod( '12345', '100' )" );
19    equal( bcmod( '1234', '100' ), '34', "bcmod( '1234', '100' )" );
19    equal( bcmod( '1234', '100' ), '34', "bcmod( '1234', '100' )" );
20    equal( bcmod( '123', '100' ), '23', "bcmod( '123', '100' )" );
20    equal( bcmod( '123', '100' ), '23', "bcmod( '123', '100' )" );
21    equal( bcmod( '12', '100' ), '12', "bcmod( '12', '100' )" );
21    equal( bcmod( '12', '100' ), '12', "bcmod( '12', '100' )" );
22    equal( bcmod( '1', '100' ), '1', "bcmod( '1', '100' )" );
22    equal( bcmod( '1', '100' ), '1', "bcmod( '1', '100' )" );
23    equal( bcmod( '123456', '10' ), '6', "bcmod( '123456', '10' )" );
23    equal( bcmod( '123456', '10' ), '6', "bcmod( '123456', '10' )" );
24    equal( bcmod( '12345', '10' ), '5', "bcmod( '12345', '10' )" );
24    equal( bcmod( '12345', '10' ), '5', "bcmod( '12345', '10' )" );
25    equal( bcmod( '1234', '10' ), '4', "bcmod( '1234', '10' )" );
25    equal( bcmod( '1234', '10' ), '4', "bcmod( '1234', '10' )" );
26    equal( bcmod( '123', '10' ), '3', "bcmod( '123', '10' )" );
26    equal( bcmod( '123', '10' ), '3', "bcmod( '123', '10' )" );
27    equal( bcmod( '12', '10' ), '2', "bcmod( '12', '10' )" );
27    equal( bcmod( '12', '10' ), '2', "bcmod( '12', '10' )" );
28    equal( bcmod( '1', '10' ), '1', "bcmod( '1', '10' )" );
28    equal( bcmod( '1', '10' ), '1', "bcmod( '1', '10' )" );
29    equal( bcmod( '123456', '1' ), '0', "bcmod( '123456', '1' )" );
29    equal( bcmod( '123456', '1' ), '0', "bcmod( '123456', '1' )" );
30    equal( bcmod( '12345', '1' ), '0', "bcmod( '12345', '1' )" );
30    equal( bcmod( '12345', '1' ), '0', "bcmod( '12345', '1' )" );
31    equal( bcmod( '1234', '1' ), '0', "bcmod( '1234', '1' )" );
31    equal( bcmod( '1234', '1' ), '0', "bcmod( '1234', '1' )" );
32    equal( bcmod( '123', '1' ), '0', "bcmod( '123', '1' )" );
32    equal( bcmod( '123', '1' ), '0', "bcmod( '123', '1' )" );
33    equal( bcmod( '12', '1' ), '0', "bcmod( '12', '1' )" );
33    equal( bcmod( '12', '1' ), '0', "bcmod( '12', '1' )" );
34    equal( bcmod( '1', '1' ), '0', "bcmod( '1', '1' )" );
34    equal( bcmod( '1', '1' ), '0', "bcmod( '1', '1' )" );
35
35
36    // fractional modulus is now supported:
36    // fractional modulus is now supported:
37    equal( bcmod( '10', '1.3' ), '0.9', "bcmod( '10', '1.3' )" );
37    equal( bcmod( '10', '1.3' ), '0.9', "bcmod( '10', '1.3' )" );
38
38
39    // testing negative left_operand:
39    // testing negative left_operand:
40    equal( bcmod( '-11', '2' ), '-1', "bcmod( '-11', '2' )" );
40    equal( bcmod( '-11', '2' ), '-1', "bcmod( '-11', '2' )" );
41
41
42    // testing zero modulus and fractional modulus:
42    // testing zero modulus and fractional modulus:
43    equal( bcmod( '3', '0' ), null, "bcmod( '3', '0' )" );
43    equal( bcmod( '3', '0' ), null, "bcmod( '3', '0' )" );
44    equal( bcmod( '3', '0.0' ), null, "bcmod( '3', '0.0' )" );
44    equal( bcmod( '3', '0.0' ), null, "bcmod( '3', '0.0' )" );
45    equal( 3 % 0.1, 0, "3 % 0.1" );
45    bcmod_test( 3, 0.1, 0, 0.09999999999999984 );
46    equal( bcmod( '3', '0.1' ), '0', "bcmod( '3', '0.1' )" );
46    bcmod_test( 3, 0.11, 0.03, 0.029999999999999985 );
47    bcmod_test( 3, 0.111, 0.003, 0.002999999999999961 );
47    equal( bcmod( '3', '0.5' ), '0', "bcmod( '3', '0.5' )" );
48    equal( bcmod( '3', '0.5' ), '0', "bcmod( '3', '0.5' )" );
48    equal( bcmod( '3', '0.9' ), '0.3', "bcmod( '3', '0.9' )" );
49    equal( bcmod( '3', '0.9' ), '0.3', "bcmod( '3', '0.9' )" );
49    equal( bcmod( '3', '1' ), '0', "bcmod( '3', '1' )" );
50    equal( bcmod( '3', '1' ), '0', "bcmod( '3', '1' )" );
50    equal( bcmod( '3', '1.0' ), '0', "bcmod( '3', '1.0' )" );
51    equal( bcmod( '3', '1.0' ), '0', "bcmod( '3', '1.0' )" );
51    equal( bcmod( '3', '1.1' ), '0.8', "bcmod( '3', '1.1' )" );
52    equal( bcmod( '3', '1.1' ), '0.8', "bcmod( '3', '1.1' )" );
52    equal( bcmod( '3', '1.5' ), '0', "bcmod( '3', '1.5' )" );
53    equal( bcmod( '3', '1.5' ), '0', "bcmod( '3', '1.5' )" );
53    equal( bcmod( '3', '1.9' ), '1.1', "bcmod( '3', '1.9' )" );
54    equal( bcmod( '3', '1.9' ), '1.1', "bcmod( '3', '1.9' )" );
54    equal( bcmod( '3', '2' ), '1', "bcmod( '3', '2' )" );
55    equal( bcmod( '3', '2' ), '1', "bcmod( '3', '2' )" );
55    equal( bcmod( '3', '2.0' ), '1', "bcmod( '3', '2.0' )" );
56    equal( bcmod( '3', '2.0' ), '1', "bcmod( '3', '2.0' )" );
56    equal( bcmod( '3', '2.1' ), '0.9', "bcmod( '3', '2.1' )" );
57    equal( bcmod( '3', '2.1' ), '0.9', "bcmod( '3', '2.1' )" );
57    equal( bcmod( '3', '2.5' ), '0.5', "bcmod( '3', '2.5' )" );
58    equal( bcmod( '3', '2.5' ), '0.5', "bcmod( '3', '2.5' )" );
58    equal( bcmod( '3', '2.9' ), '0.1', "bcmod( '3', '2.9' )" );
59    equal( bcmod( '3', '2.9' ), '0.1', "bcmod( '3', '2.9' )" );
59    equal( bcmod( '3', '3' ), '0', "bcmod( '3', '3' )" );
60    equal( bcmod( '3', '3' ), '0', "bcmod( '3', '3' )" );
60
61
61    ok( true, "all pass" );
62    ok( true, "all pass" );
62
63
63  } );
64  } );
64
65
66}
67
68function bcmod_test( left_operand, modulus, expect, broken_js ) {
69  if ( typeof broken_js === "undefined" ) { broken_js = expect; }
70  equal( left_operand % modulus, broken_js, left_operand + " % " + modulus );
71  equal(
72    bcmod( left_operand.toString(), modulus.toString() ),
73    expect.toString(),
74    "bcmod( '" + left_operand + "', '" + modulus + "' )"
75  );
65}
76}