v2 / vlib / math / big / big_division_test.v
20 lines · 18 sloc · 561 bytes · 9b8a1607ed17da030468fa07b94737607850ee23
Raw
1import math.big
2
3const d_2 = big.integer_from_int(2)
4const d_4 = big.integer_from_int(4)
5const d_10 = big.integer_from_int(10)
6
7fn test_dividing_big_numbers() {
8 mut n := 250_000
9 base := d_10.pow(u32(n - 1))
10 eprintln('> n: ${n} | base.bit_len: ${base.bit_len()}')
11 a := d_4 * base
12 b := d_2 * base
13 eprintln('> a.bit_len: ${a.bit_len()} | b.bit_len: ${b.bit_len()}')
14 assert a.bit_len() == 830481
15 assert b.bit_len() == 830480
16 c := a / b // c should be 2
17 eprintln('> c: ${c} | c.bit_len(): ${c.bit_len()}')
18 assert c.str() == '2'
19 assert c.bit_len() == 2
20}
21