chiark / gitweb /
Rearrange the file tree.
[catacomb] / math / t / mptext
1 # Test vectors for MP textual I/O
2
3 mptext-ascii {
4   # --- Perfectly valid things ---
5
6   10 0                                  10 0 "";
7   0 0                                   10 0 "";
8   10 52                                 10 52 "";
9   10 654365464655464577673765769678     10 654365464655464577673765769678 "";
10   10 654365464655464577673765769678     16 8425e6d06f272b9a2d73ed1ce "";
11   10 596569802840985608098409867        8 366570443501403714657464766613 "";
12   16 8425E6D06F272B9A2D73ED1CE          10 654365464655464577673765769678 "";
13   0 654365464655464577673765769678      16 8425e6d06f272b9a2d73ed1ce "";
14   0 16_8425E6D06F272B9A2D73ED1CE        10 654365464655464577673765769678 "";
15   0 -0x8425E6D06F272B9A2D73ED1CE        10 -654365464655464577673765769678 "";
16   0 -8_366570443501403714657464766613   10 -596569802840985608098409867 "";
17   8 -366570443501403714657464766613     10 -596569802840985608098409867 "";
18   0 0366570443501403714657464766613     10 596569802840985608098409867 "";
19
20   # --- Bogus things ---
21
22   10 "" 0 0 "";                 # Empty string fails
23   10 foo 0 0 "foo";             # Non-numeric character
24   10 134f 10 134 "f";           # Stop parsing when reaching `f'
25   4 12345 10 27 "45";           # Stop parsing when reaching `4'
26   0 63_ 10 63 "_";              # 37 is an invalid base, so stop at `_'
27   0 36_ 0 0 "";                 # 36 is a valid base, so restart and fail
28
29   # --- Big bases ---
30
31   62 0 10 0 "";
32   10 0 62 0 "";
33   36 A 10 10 "";
34   36 Z 10 35 "";
35   37 A 10 36 "";
36   10 36 37 A "";
37   62 Z 10 61 "";
38
39   0 36_a 10 10 "";
40   0 36_A 10 10 "";
41   0 37_A 10 36 "";
42
43   0 0x10 10 16 "";
44   0 0o10 10 8 "";
45   0 0b10 10 2 "";
46   0 010 10 8 "";
47
48   # --- Word-boundary tests for binary-radix translation ---
49
50   0 0                                   16 0 "";
51   8 1234567012                          8 1234567012 "";
52   8 12345670123                         8 12345670123 "";
53   8 123456701234                        8 123456701234 "";
54
55   16 1234567                            16 1234567 "";
56   16 12345678                           16 12345678 "";
57   16 123456789                          16 123456789 "";
58
59   10 -4009356060                        16 -eef9eb1c "";
60
61   # --- Cussidness ---
62
63   0 -0                                  10 0 "";
64
65   # --- Bugs ---
66
67   16 84d192cd06ae59691897fa409da6198d5269325d
68   16 84d192cd06ae59691897fa409da6198d5269325d "";
69
70   16 -9802d5c5d5a73f9d4e694a8920f95231b4017f3ec6a4654ace3fa3d85879e5964dade0e051d57f13c275dab1df3da5331f39271efb2792d1dad4460fd5eb5c21fbf355456f523e5631e623074ff9b3e85cf5e0a9336c8d8b8621b24c4e625800ee0152d12c8e22658a66ade38cb4453ab6e4958114717355186649a6cc20d9f5ae2207f99814965035072a9f2121c8f9dd22ab134181378906291aae97287b62a2f592bbceb4198c9cd78e1968bf1e16865c3c6ce9c777232f186b5da240a24523a07faca9de44eba510c91917e099372e67a6a66e93fe7aaefcb9c5485e1a889eae721ab6407586880a95575a968b43bdf50323627aa0fcddfa4e198b0008
71   10 -74959454570640520505374182178324326240748657042677990093617716411759477136824854815262670168473667077524864904515489090301434501507378472350618141578200289566815110468728966378289347050752371322168328511598641143081017162500179880923097593329564317427467179672704707842937085621549781627579801356509572397210965270406925309382945647493757499822518272539171346319468210919037390479279679328187057939609889863122790083219768061816093131875491575840052493376341193028052061557296969558099473333023971577236615940525630787016398581105441977909848659239970133974969366933817929047771871736452423855320657946133173829640 "";
72
73   10 687036505685680036980563991304827689190226068191165515873309582371531653761560838357887565473014960851061079052387145199258972778940173525017542879674305252823453991900595437468144352005006881129612951699750949026636206282574720840178116341517038998609517724307448384647380133273761360084019113505091720961437658149042479826982973196933684563380877276612883608481996579884762706391098995123384485837872544276099219443948234067623442105312332114374763392077663374681230289067615025968182722516808457505932863951619224171887832194148545132638772027329666389477813640620737624951105503846166715576529533580414958055708947608220960395455545922617914622611716584821091744228076205865701038484061060900340103461251087987631583104425599437283952841086221737575051158322973751353914369450945591184550003693808660890173148206999627057352641910478408389852121815588924208719373851205997267929487223022997903565246821511833717944887785333763131071163649350968541111796906733695518487580626938892775883629672280655177072837819344983336811201072380418330154409415723975489649421805372088286721361996667976678161505679350285875598457893785891475462099191282531966080162136450154198672623485698300307676277037616099696441730508788295411634665370788798384809584417102543248560317224205079917990766513568040641690632751952309869792602319263342525778046078743231821682847703178976601855555261436480615639995150308874740741630953255447186244703692652027199198662385455033073594432232250325046519267763604243367272471024553800469955272676941568451192546782745963075159357666087761637705388608592656535848292947073782242206595438203903079185128849386496430347274188109070907185471363018498891836986716946253163675821471661778024303689714601286352436391739170368727508436484115845640636653283093361670039386061546795520151041150800979484160765783927564359393959237330742523328888527872599693558141880251962681735003114604660394550415472363991770499647732372855076408144546777820449665557724138072899691283182780416000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
74   10 687036505685680036980563991304827689190226068191165515873309582371531653761560838357887565473014960851061079052387145199258972778940173525017542879674305252823453991900595437468144352005006881129612951699750949026636206282574720840178116341517038998609517724307448384647380133273761360084019113505091720961437658149042479826982973196933684563380877276612883608481996579884762706391098995123384485837872544276099219443948234067623442105312332114374763392077663374681230289067615025968182722516808457505932863951619224171887832194148545132638772027329666389477813640620737624951105503846166715576529533580414958055708947608220960395455545922617914622611716584821091744228076205865701038484061060900340103461251087987631583104425599437283952841086221737575051158322973751353914369450945591184550003693808660890173148206999627057352641910478408389852121815588924208719373851205997267929487223022997903565246821511833717944887785333763131071163649350968541111796906733695518487580626938892775883629672280655177072837819344983336811201072380418330154409415723975489649421805372088286721361996667976678161505679350285875598457893785891475462099191282531966080162136450154198672623485698300307676277037616099696441730508788295411634665370788798384809584417102543248560317224205079917990766513568040641690632751952309869792602319263342525778046078743231821682847703178976601855555261436480615639995150308874740741630953255447186244703692652027199198662385455033073594432232250325046519267763604243367272471024553800469955272676941568451192546782745963075159357666087761637705388608592656535848292947073782242206595438203903079185128849386496430347274188109070907185471363018498891836986716946253163675821471661778024303689714601286352436391739170368727508436484115845640636653283093361670039386061546795520151041150800979484160765783927564359393959237330742523328888527872599693558141880251962681735003114604660394550415472363991770499647732372855076408144546777820449665557724138072899691283182780416000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 "";
75 }
76
77 mptext-bin-in {
78   -10 010203040506070809 10 123456789 "";
79   -100 01172d4359 10 123456789 "";
80   -90 09124709 10 6713199 "";
81 }
82
83 mptext-bin-out {
84   10 123456789 -10 010203040506070809 "";
85   10 123456789 -100 01172d4359 "";
86   10 6713199 -90 09124709 "";
87   10 0 -10 00 "";
88 }