()
| 25 | from ccxt.base.precise import Precise # noqa E402 |
| 26 | |
| 27 | def 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' |
nothing calls this directly
no test coverage detected
searching dependent graphs…