MCPcopy Create free account
hub / github.com/ccxt/ccxt / test_number

Function test_number

python/ccxt/test/base/test_number.py:27–342  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

25from ccxt.base.precise import Precise # noqa E402
26
27def test_number():
28 exchange = ccxt.Exchange({
29 'id': 'regirock',
30 })
31 # ----------------------------------------------------------------------------
32 # numberToString
33 assert exchange.number_to_string(-7.8e-7) == '-0.00000078'
34 assert exchange.number_to_string(7.8e-7) == '0.00000078'
35 assert exchange.number_to_string(-0.0000017805) == '-0.0000017805'
36 assert exchange.number_to_string(0.0000017805) == '0.0000017805'
37 assert exchange.number_to_string(-7.0005e+27) == '-7000500000000000000000000000'
38 assert exchange.number_to_string(7.0005e+27) == '7000500000000000000000000000'
39 assert exchange.number_to_string(-7.9e+27) == '-7900000000000000000000000000'
40 assert exchange.number_to_string(7e+27) == '7000000000000000000000000000'
41 assert exchange.number_to_string(7.9e+27) == '7900000000000000000000000000'
42 assert exchange.number_to_string(-12.345) == '-12.345'
43 assert exchange.number_to_string(12.345) == '12.345'
44 assert exchange.number_to_string(0) == '0'
45 assert exchange.number_to_string(7.35946e+21) == '7359460000000000000000'
46 assert exchange.number_to_string(1e-8) == '0.00000001'
47 assert exchange.number_to_string(1e-7) == '0.0000001'
48 assert exchange.number_to_string(-1e-7) == '-0.0000001'
49 # ----------------------------------------------------------------------------
50 # testDecimalToPrecisionTruncationToNDigitsAfterDot
51 assert exchange.decimal_to_precision('12.3456000', TRUNCATE, 100, DECIMAL_PLACES) == '12.3456'
52 assert exchange.decimal_to_precision('12.3456', TRUNCATE, 100, DECIMAL_PLACES) == '12.3456'
53 assert exchange.decimal_to_precision('12.3456', TRUNCATE, 4, DECIMAL_PLACES) == '12.3456'
54 assert exchange.decimal_to_precision('12.3456', TRUNCATE, 3, DECIMAL_PLACES) == '12.345'
55 assert exchange.decimal_to_precision('12.3456', TRUNCATE, 2, DECIMAL_PLACES) == '12.34'
56 assert exchange.decimal_to_precision('12.3456', TRUNCATE, 1, DECIMAL_PLACES) == '12.3'
57 assert exchange.decimal_to_precision('12.3456', TRUNCATE, 0, DECIMAL_PLACES) == '12'
58 # ['12.3456', TRUNCATE, -1, DECIMAL_PLACES, '10'], # not yet supported
59 # ['123.456', TRUNCATE, -2, DECIMAL_PLACES, '120'], # not yet supported
60 # ['123.456', TRUNCATE, -3, DECIMAL_PLACES, '100'], # not yet supported
61 assert exchange.decimal_to_precision('0.0000001', TRUNCATE, 8, DECIMAL_PLACES) == '0.0000001'
62 assert exchange.decimal_to_precision('0.00000001', TRUNCATE, 8, DECIMAL_PLACES) == '0.00000001'
63 assert exchange.decimal_to_precision('0.000000000', TRUNCATE, 9, DECIMAL_PLACES, PAD_WITH_ZERO) == '0.000000000'
64 assert exchange.decimal_to_precision('0.000000001', TRUNCATE, 9, DECIMAL_PLACES, PAD_WITH_ZERO) == '0.000000001'
65 assert exchange.decimal_to_precision('12.3456', TRUNCATE, -1, DECIMAL_PLACES) == '10'
66 assert exchange.decimal_to_precision('123.456', TRUNCATE, -1, DECIMAL_PLACES) == '120'
67 assert exchange.decimal_to_precision('123.456', TRUNCATE, -2, DECIMAL_PLACES) == '100'
68 assert exchange.decimal_to_precision('9.99999', TRUNCATE, -1, DECIMAL_PLACES) == '0'
69 assert exchange.decimal_to_precision('99.9999', TRUNCATE, -1, DECIMAL_PLACES) == '90'
70 assert exchange.decimal_to_precision('99.9999', TRUNCATE, -2, DECIMAL_PLACES) == '0'
71 assert exchange.decimal_to_precision('0', TRUNCATE, 0, DECIMAL_PLACES) == '0'
72 assert exchange.decimal_to_precision('-0.9', TRUNCATE, 0, DECIMAL_PLACES) == '0'
73 # ----------------------------------------------------------------------------
74 # testDecimalToPrecisionTruncationToNSignificantDigits
75 assert exchange.decimal_to_precision('0.000123456700', TRUNCATE, 100, SIGNIFICANT_DIGITS) == '0.0001234567'
76 assert exchange.decimal_to_precision('0.0001234567', TRUNCATE, 100, SIGNIFICANT_DIGITS) == '0.0001234567'
77 assert exchange.decimal_to_precision('0.0001234567', TRUNCATE, 7, SIGNIFICANT_DIGITS) == '0.0001234567'
78 assert exchange.decimal_to_precision('0.000123456', TRUNCATE, 6, SIGNIFICANT_DIGITS) == '0.000123456'
79 assert exchange.decimal_to_precision('0.000123456', TRUNCATE, 5, SIGNIFICANT_DIGITS) == '0.00012345'
80 assert exchange.decimal_to_precision('0.000123456', TRUNCATE, 2, SIGNIFICANT_DIGITS) == '0.00012'
81 assert exchange.decimal_to_precision('0.000123456', TRUNCATE, 1, SIGNIFICANT_DIGITS) == '0.0001'
82 assert exchange.decimal_to_precision('123.0000987654', TRUNCATE, 10, SIGNIFICANT_DIGITS, PAD_WITH_ZERO) == '123.0000987'
83 assert exchange.decimal_to_precision('123.0000987654', TRUNCATE, 8, SIGNIFICANT_DIGITS) == '123.00009'
84 assert exchange.decimal_to_precision('123.0000987654', TRUNCATE, 7, SIGNIFICANT_DIGITS, PAD_WITH_ZERO) == '123.0000'

Callers

nothing calls this directly

Calls 15

ExchangeMethod · 0.80
string_mulMethod · 0.80
string_addMethod · 0.80
string_subMethod · 0.80
string_divMethod · 0.80
string_absMethod · 0.80
string_negMethod · 0.80
string_modMethod · 0.80
string_equalsMethod · 0.80
string_minMethod · 0.80
string_maxMethod · 0.80
string_gtMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…