mirror of
https://github.com/tailix/libkernaux.git
synced 2025-04-07 17:32:45 -04:00
mruby: fix common tests for printf (closes #57)
This commit is contained in:
parent
449b141052
commit
b1f4680d83
2 changed files with 124 additions and 86 deletions
|
@ -1,5 +1,43 @@
|
|||
if KernAux::Version.with_printf?
|
||||
assert 'KernAux.sprintf' do
|
||||
assert 'integers' do
|
||||
assert_equal 'i: 0', KernAux.sprintf('i: ', ['%i', 0])
|
||||
assert_equal 'u: 0', KernAux.sprintf('u: ', ['%u', 0])
|
||||
assert_equal 'i: 1', KernAux.sprintf('i: ', ['%i', 1])
|
||||
assert_equal 'u: 1', KernAux.sprintf('u: ', ['%u', 1])
|
||||
assert_equal 'i: 10', KernAux.sprintf('i: ', ['%i', 10])
|
||||
assert_equal 'u: 10', KernAux.sprintf('u: ', ['%u', 10])
|
||||
assert_equal 'i: 100', KernAux.sprintf('i: ', ['%i', 100])
|
||||
assert_equal 'u: 100', KernAux.sprintf('u: ', ['%u', 100])
|
||||
assert_equal 'i: 1000', KernAux.sprintf('i: ', ['%i', 1000])
|
||||
assert_equal 'u: 1000', KernAux.sprintf('u: ', ['%u', 1000])
|
||||
assert_equal 'i: 10000', KernAux.sprintf('i: ', ['%i', 10_000])
|
||||
assert_equal 'u: 10000', KernAux.sprintf('u: ', ['%u', 10_000])
|
||||
assert_equal 'i: 100000', KernAux.sprintf('i: ', ['%i', 100_000])
|
||||
assert_equal 'u: 100000', KernAux.sprintf('u: ', ['%u', 100_000])
|
||||
assert_equal 'i: 1000000', KernAux.sprintf('i: ', ['%i', 1_000_000])
|
||||
assert_equal 'u: 1000000', KernAux.sprintf('u: ', ['%u', 1_000_000])
|
||||
assert_equal 'i: 10000000', KernAux.sprintf('i: ', ['%i', 10_000_000])
|
||||
assert_equal 'u: 10000000', KernAux.sprintf('u: ', ['%u', 10_000_000])
|
||||
assert_equal 'i: 100000000', KernAux.sprintf('i: ', ['%i', 10**8])
|
||||
assert_equal 'u: 100000000', KernAux.sprintf('u: ', ['%u', 10**8])
|
||||
assert_equal 'i: 1000000000', KernAux.sprintf('i: ', ['%i', 10**9])
|
||||
assert_equal 'u: 1000000000', KernAux.sprintf('u: ', ['%u', 10**9])
|
||||
assert_equal 'i: 2147483647', KernAux.sprintf('i: ', ['%i', 2**31 - 1])
|
||||
assert_equal 'u: 2147483647', KernAux.sprintf('u: ', ['%u', 2**31 - 1])
|
||||
end
|
||||
|
||||
assert 'integer overflows' do
|
||||
assert_equal 'i: -2147483648', KernAux.sprintf('i: ', ['%i', 2**31])
|
||||
assert_equal 'u: 2147483648', KernAux.sprintf('u: ', ['%u', 2**31])
|
||||
assert_equal 'i: -2147483647', KernAux.sprintf('i: ', ['%i', 2**31 + 1])
|
||||
assert_equal 'u: 2147483649', KernAux.sprintf('u: ', ['%u', 2**31 + 1])
|
||||
assert_equal 'i: -1', KernAux.sprintf('i: ', ['%i', 2**32 - 1])
|
||||
assert_equal 'u: 4294967295', KernAux.sprintf('u: ', ['%u', 2**32 - 1])
|
||||
assert_equal 'i: 0', KernAux.sprintf('i: ', ['%i', 2**32])
|
||||
assert_equal 'u: 0', KernAux.sprintf('u: ', ['%u', 2**32])
|
||||
end
|
||||
|
||||
[
|
||||
['', 'using regular tests'],
|
||||
['_orig', 'using original tests'],
|
||||
|
|
|
@ -57,19 +57,19 @@
|
|||
- result: '1024'
|
||||
args: [['% u', 1024]]
|
||||
- result: '4294966272'
|
||||
args: [['% u', 4_294_966_272]]
|
||||
args: [['% u', 4294966272]]
|
||||
- result: '777'
|
||||
args: [['% o', 511]]
|
||||
- result: '37777777001'
|
||||
args: [['% o', 4_294_966_785]]
|
||||
args: [['% o', 4294966785]]
|
||||
- result: '1234abcd'
|
||||
args: [['% x', 305_441_741]]
|
||||
args: [['% x', 305441741]]
|
||||
- result: 'edcb5433'
|
||||
args: [['% x', 3_989_525_555]]
|
||||
args: [['% x', 3989525555]]
|
||||
- result: '1234ABCD'
|
||||
args: [['% X', 305_441_741]]
|
||||
args: [['% X', 305441741]]
|
||||
- result: 'EDCB5433'
|
||||
args: [['% X', 3_989_525_555]]
|
||||
args: [['% X', 3989525555]]
|
||||
- result: 'x'
|
||||
args: [['% c', ['x']]]
|
||||
|
||||
|
@ -100,19 +100,19 @@
|
|||
- result: '1024'
|
||||
args: [['%+u', 1024]]
|
||||
- result: '4294966272'
|
||||
args: [['%+u', 4_294_966_272]]
|
||||
args: [['%+u', 4294966272]]
|
||||
- result: '777'
|
||||
args: [['%+o', 511]]
|
||||
- result: '37777777001'
|
||||
args: [['%+o', 4_294_966_785]]
|
||||
args: [['%+o', 4294966785]]
|
||||
- result: '1234abcd'
|
||||
args: [['%+x', 305_441_741]]
|
||||
args: [['%+x', 305441741]]
|
||||
- result: 'edcb5433'
|
||||
args: [['%+x', 3_989_525_555]]
|
||||
args: [['%+x', 3989525555]]
|
||||
- result: '1234ABCD'
|
||||
args: [['%+X', 305_441_741]]
|
||||
args: [['%+X', 305441741]]
|
||||
- result: 'EDCB5433'
|
||||
args: [['%+X', 3_989_525_555]]
|
||||
args: [['%+X', 3989525555]]
|
||||
- result: 'x'
|
||||
args: [['%+c', ['x']]]
|
||||
- result: '+'
|
||||
|
@ -221,19 +221,19 @@
|
|||
- result: '1024'
|
||||
args: [['%u', 1024]]
|
||||
- result: '4294966272'
|
||||
args: [['%u', 4_294_966_272]]
|
||||
args: [['%u', 4294966272]]
|
||||
- result: '777'
|
||||
args: [['%o', 511]]
|
||||
- result: '37777777001'
|
||||
args: [['%o', 4_294_966_785]]
|
||||
args: [['%o', 4294966785]]
|
||||
- result: '1234abcd'
|
||||
args: [['%x', 305_441_741]]
|
||||
args: [['%x', 305441741]]
|
||||
- result: 'edcb5433'
|
||||
args: [['%x', 3_989_525_555]]
|
||||
args: [['%x', 3989525555]]
|
||||
- result: '1234ABCD'
|
||||
args: [['%X', 305_441_741]]
|
||||
args: [['%X', 305441741]]
|
||||
- result: 'EDCB5433'
|
||||
args: [['%X', 3_989_525_555]]
|
||||
args: [['%X', 3989525555]]
|
||||
- result: '%'
|
||||
args: [['%%']]
|
||||
|
||||
|
@ -252,19 +252,19 @@
|
|||
- result: '1024'
|
||||
args: [['%1u', 1024]]
|
||||
- result: '4294966272'
|
||||
args: [['%1u', 4_294_966_272]]
|
||||
args: [['%1u', 4294966272]]
|
||||
- result: '777'
|
||||
args: [['%1o', 511]]
|
||||
- result: '37777777001'
|
||||
args: [['%1o', 4_294_966_785]]
|
||||
args: [['%1o', 4294966785]]
|
||||
- result: '1234abcd'
|
||||
args: [['%1x', 305_441_741]]
|
||||
args: [['%1x', 305441741]]
|
||||
- result: 'edcb5433'
|
||||
args: [['%1x', 3_989_525_555]]
|
||||
args: [['%1x', 3989525555]]
|
||||
- result: '1234ABCD'
|
||||
args: [['%1X', 305_441_741]]
|
||||
args: [['%1X', 305441741]]
|
||||
- result: 'EDCB5433'
|
||||
args: [['%1X', 3_989_525_555]]
|
||||
args: [['%1X', 3989525555]]
|
||||
- result: 'x'
|
||||
args: [['%1c', ['x']]]
|
||||
|
||||
|
@ -283,19 +283,19 @@
|
|||
- result: ' 1024'
|
||||
args: [['%20u', 1024]]
|
||||
- result: ' 4294966272'
|
||||
args: [['%20u', 4_294_966_272]]
|
||||
args: [['%20u', 4294966272]]
|
||||
- result: ' 777'
|
||||
args: [['%20o', 511]]
|
||||
- result: ' 37777777001'
|
||||
args: [['%20o', 4_294_966_785]]
|
||||
args: [['%20o', 4294966785]]
|
||||
- result: ' 1234abcd'
|
||||
args: [['%20x', 305_441_741]]
|
||||
args: [['%20x', 305441741]]
|
||||
- result: ' edcb5433'
|
||||
args: [['%20x', 3_989_525_555]]
|
||||
args: [['%20x', 3989525555]]
|
||||
- result: ' 1234ABCD'
|
||||
args: [['%20X', 305_441_741]]
|
||||
args: [['%20X', 305441741]]
|
||||
- result: ' EDCB5433'
|
||||
args: [['%20X', 3_989_525_555]]
|
||||
args: [['%20X', 3989525555]]
|
||||
- result: ' x'
|
||||
args: [['%20c', ['x']]]
|
||||
|
||||
|
@ -314,19 +314,19 @@
|
|||
- result: ' 1024'
|
||||
args: [['%*u', 20, 1024]]
|
||||
- result: ' 4294966272'
|
||||
args: [['%*u', 20, 4_294_966_272]]
|
||||
args: [['%*u', 20, 4294966272]]
|
||||
- result: ' 777'
|
||||
args: [['%*o', 20, 511]]
|
||||
- result: ' 37777777001'
|
||||
args: [['%*o', 20, 4_294_966_785]]
|
||||
args: [['%*o', 20, 4294966785]]
|
||||
- result: ' 1234abcd'
|
||||
args: [['%*x', 20, 305_441_741]]
|
||||
args: [['%*x', 20, 305441741]]
|
||||
- result: ' edcb5433'
|
||||
args: [['%*x', 20, 3_989_525_555]]
|
||||
args: [['%*x', 20, 3989525555]]
|
||||
- result: ' 1234ABCD'
|
||||
args: [['%*X', 20, 305_441_741]]
|
||||
args: [['%*X', 20, 305441741]]
|
||||
- result: ' EDCB5433'
|
||||
args: [['%*X', 20, 3_989_525_555]]
|
||||
args: [['%*X', 20, 3989525555]]
|
||||
- result: ' x'
|
||||
args: [['%*c', 20, ['x']]]
|
||||
|
||||
|
@ -348,19 +348,19 @@
|
|||
args: [['%-20.4f', 1024.1234]]
|
||||
float: true
|
||||
- result: '4294966272 '
|
||||
args: [['%-20u', 4_294_966_272]]
|
||||
args: [['%-20u', 4294966272]]
|
||||
- result: '777 '
|
||||
args: [['%-20o', 511]]
|
||||
- result: '37777777001 '
|
||||
args: [['%-20o', 4_294_966_785]]
|
||||
args: [['%-20o', 4294966785]]
|
||||
- result: '1234abcd '
|
||||
args: [['%-20x', 305_441_741]]
|
||||
args: [['%-20x', 305441741]]
|
||||
- result: 'edcb5433 '
|
||||
args: [['%-20x', 3_989_525_555]]
|
||||
args: [['%-20x', 3989525555]]
|
||||
- result: '1234ABCD '
|
||||
args: [['%-20X', 305_441_741]]
|
||||
args: [['%-20X', 305441741]]
|
||||
- result: 'EDCB5433 '
|
||||
args: [['%-20X', 3_989_525_555]]
|
||||
args: [['%-20X', 3989525555]]
|
||||
- result: 'x '
|
||||
args: [['%-20c', ['x']]]
|
||||
- result: '| 9| |9 | | 9|'
|
||||
|
@ -387,19 +387,19 @@
|
|||
- result: '1024 '
|
||||
args: [['%0-20u', 1024]]
|
||||
- result: '4294966272 '
|
||||
args: [['%0-20u', 4_294_966_272]]
|
||||
args: [['%0-20u', 4294966272]]
|
||||
- result: '777 '
|
||||
args: [['%0-20o', 511]]
|
||||
- result: '37777777001 '
|
||||
args: [['%0-20o', 4_294_966_785]]
|
||||
args: [['%0-20o', 4294966785]]
|
||||
- result: '1234abcd '
|
||||
args: [['%0-20x', 305_441_741]]
|
||||
args: [['%0-20x', 305441741]]
|
||||
- result: 'edcb5433 '
|
||||
args: [['%0-20x', 3_989_525_555]]
|
||||
args: [['%0-20x', 3989525555]]
|
||||
- result: '1234ABCD '
|
||||
args: [['%0-20X', 305_441_741]]
|
||||
args: [['%0-20X', 305441741]]
|
||||
- result: 'EDCB5433 '
|
||||
args: [['%0-20X', 3_989_525_555]]
|
||||
args: [['%0-20X', 3989525555]]
|
||||
- result: 'x '
|
||||
args: [['%0-20c', ['x']]]
|
||||
|
||||
|
@ -416,19 +416,19 @@
|
|||
- result: '00000000000000001024'
|
||||
args: [['%020u', 1024]]
|
||||
- result: '00000000004294966272'
|
||||
args: [['%020u', 4_294_966_272]]
|
||||
args: [['%020u', 4294966272]]
|
||||
- result: '00000000000000000777'
|
||||
args: [['%020o', 511]]
|
||||
- result: '00000000037777777001'
|
||||
args: [['%020o', 4_294_966_785]]
|
||||
args: [['%020o', 4294966785]]
|
||||
- result: '0000000000001234abcd'
|
||||
args: [['%020x', 305_441_741]]
|
||||
args: [['%020x', 305441741]]
|
||||
- result: '000000000000edcb5433'
|
||||
args: [['%020x', 3_989_525_555]]
|
||||
args: [['%020x', 3989525555]]
|
||||
- result: '0000000000001234ABCD'
|
||||
args: [['%020X', 305_441_741]]
|
||||
args: [['%020X', 305441741]]
|
||||
- result: '000000000000EDCB5433'
|
||||
args: [['%020X', 3_989_525_555]]
|
||||
args: [['%020X', 3989525555]]
|
||||
|
||||
# padding .20
|
||||
|
||||
|
@ -443,19 +443,19 @@
|
|||
- result: '00000000000000001024'
|
||||
args: [['%.20u', 1024]]
|
||||
- result: '00000000004294966272'
|
||||
args: [['%.20u', 4_294_966_272]]
|
||||
args: [['%.20u', 4294966272]]
|
||||
- result: '00000000000000000777'
|
||||
args: [['%.20o', 511]]
|
||||
- result: '00000000037777777001'
|
||||
args: [['%.20o', 4_294_966_785]]
|
||||
args: [['%.20o', 4294966785]]
|
||||
- result: '0000000000001234abcd'
|
||||
args: [['%.20x', 305_441_741]]
|
||||
args: [['%.20x', 305441741]]
|
||||
- result: '000000000000edcb5433'
|
||||
args: [['%.20x', 3_989_525_555]]
|
||||
args: [['%.20x', 3989525555]]
|
||||
- result: '0000000000001234ABCD'
|
||||
args: [['%.20X', 305_441_741]]
|
||||
args: [['%.20X', 305441741]]
|
||||
- result: '000000000000EDCB5433'
|
||||
args: [['%.20X', 3_989_525_555]]
|
||||
args: [['%.20X', 3989525555]]
|
||||
|
||||
# padding #020
|
||||
|
||||
|
@ -470,19 +470,19 @@
|
|||
- result: '00000000000000001024'
|
||||
args: [['%#020u', 1024]]
|
||||
- result: '00000000004294966272'
|
||||
args: [['%#020u', 4_294_966_272]]
|
||||
args: [['%#020u', 4294966272]]
|
||||
- result: '00000000000000000777'
|
||||
args: [['%#020o', 511]]
|
||||
- result: '00000000037777777001'
|
||||
args: [['%#020o', 4_294_966_785]]
|
||||
args: [['%#020o', 4294966785]]
|
||||
- result: '0x00000000001234abcd'
|
||||
args: [['%#020x', 305_441_741]]
|
||||
args: [['%#020x', 305441741]]
|
||||
- result: '0x0000000000edcb5433'
|
||||
args: [['%#020x', 3_989_525_555]]
|
||||
args: [['%#020x', 3989525555]]
|
||||
- result: '0X00000000001234ABCD'
|
||||
args: [['%#020X', 305_441_741]]
|
||||
args: [['%#020X', 305441741]]
|
||||
- result: '0X0000000000EDCB5433'
|
||||
args: [['%#020X', 3_989_525_555]]
|
||||
args: [['%#020X', 3989525555]]
|
||||
|
||||
# padding #20
|
||||
|
||||
|
@ -497,19 +497,19 @@
|
|||
- result: ' 1024'
|
||||
args: [['%#20u', 1024]]
|
||||
- result: ' 4294966272'
|
||||
args: [['%#20u', 4_294_966_272]]
|
||||
args: [['%#20u', 4294966272]]
|
||||
- result: ' 0777'
|
||||
args: [['%#20o', 511]]
|
||||
- result: ' 037777777001'
|
||||
args: [['%#20o', 4_294_966_785]]
|
||||
args: [['%#20o', 4294966785]]
|
||||
- result: ' 0x1234abcd'
|
||||
args: [['%#20x', 305_441_741]]
|
||||
args: [['%#20x', 305441741]]
|
||||
- result: ' 0xedcb5433'
|
||||
args: [['%#20x', 3_989_525_555]]
|
||||
args: [['%#20x', 3989525555]]
|
||||
- result: ' 0X1234ABCD'
|
||||
args: [['%#20X', 305_441_741]]
|
||||
args: [['%#20X', 305441741]]
|
||||
- result: ' 0XEDCB5433'
|
||||
args: [['%#20X', 3_989_525_555]]
|
||||
args: [['%#20X', 3989525555]]
|
||||
|
||||
# padding 20.5
|
||||
|
||||
|
@ -524,19 +524,19 @@
|
|||
- result: ' 01024'
|
||||
args: [['%20.5u', 1024]]
|
||||
- result: ' 4294966272'
|
||||
args: [['%20.5u', 4_294_966_272]]
|
||||
args: [['%20.5u', 4294966272]]
|
||||
- result: ' 00777'
|
||||
args: [['%20.5o', 511]]
|
||||
- result: ' 37777777001'
|
||||
args: [['%20.5o', 4_294_966_785]]
|
||||
args: [['%20.5o', 4294966785]]
|
||||
- result: ' 1234abcd'
|
||||
args: [['%20.5x', 305_441_741]]
|
||||
args: [['%20.5x', 305441741]]
|
||||
- result: ' 00edcb5433'
|
||||
args: [['%20.10x', 3_989_525_555]]
|
||||
args: [['%20.10x', 3989525555]]
|
||||
- result: ' 1234ABCD'
|
||||
args: [['%20.5X', 305_441_741]]
|
||||
args: [['%20.5X', 305441741]]
|
||||
- result: ' 00EDCB5433'
|
||||
args: [['%20.10X', 3_989_525_555]]
|
||||
args: [['%20.10X', 3989525555]]
|
||||
|
||||
# padding neg numbers
|
||||
|
||||
|
@ -635,29 +635,29 @@
|
|||
- result: ' 1024'
|
||||
args: [['%20.u', 1024]]
|
||||
- result: ' 4294966272'
|
||||
args: [['%20.0u', 4_294_966_272]]
|
||||
args: [['%20.0u', 4294966272]]
|
||||
- result: ' '
|
||||
args: [['%20.u', 0]]
|
||||
- result: ' 777'
|
||||
args: [['%20.o', 511]]
|
||||
- result: ' 37777777001'
|
||||
args: [['%20.0o', 4_294_966_785]]
|
||||
args: [['%20.0o', 4294966785]]
|
||||
- result: ' '
|
||||
args: [['%20.o', 0]]
|
||||
- result: ' 1234abcd'
|
||||
args: [['%20.x', 305_441_741]]
|
||||
args: [['%20.x', 305441741]]
|
||||
- result: ' 1234abcd'
|
||||
args: [['%50.x', 305_441_741]]
|
||||
args: [['%50.x', 305441741]]
|
||||
- result: ' 1234abcd 12345'
|
||||
args: [['%50.x', 305_441_741], ['%10.u', 12345]]
|
||||
args: [['%50.x', 305441741], ['%10.u', 12345]]
|
||||
- result: ' edcb5433'
|
||||
args: [['%20.0x', 3_989_525_555]]
|
||||
args: [['%20.0x', 3989525555]]
|
||||
- result: ' '
|
||||
args: [['%20.x', 0]]
|
||||
- result: ' 1234ABCD'
|
||||
args: [['%20.X', 305_441_741]]
|
||||
args: [['%20.X', 305441741]]
|
||||
- result: ' EDCB5433'
|
||||
args: [['%20.0X', 3_989_525_555]]
|
||||
args: [['%20.0X', 3989525555]]
|
||||
- result: ' '
|
||||
args: [['%20.X', 0]]
|
||||
- result: ' '
|
||||
|
|
Loading…
Add table
Reference in a new issue