mruby: fix common tests for printf (closes #57)

This commit is contained in:
Alex Kotov 2022-06-16 17:35:20 +03:00
parent 449b141052
commit b1f4680d83
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
2 changed files with 124 additions and 86 deletions

View File

@ -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'],

View File

@ -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: ' '