]> mj.ucw.cz Git - eval.git/blob - judge/token.t
Maint: Fixed a stupid typo
[eval.git] / judge / token.t
1 # Test cases for token.c
2 # BEWARE: This file contains strange spacing (trailing spaces etc.), which is vital.
3 # Please edit carefully.
4
5 # A simple test case with several spaces
6 Name:   std
7 Run:    bin/test-tok 2>&1
8 In:        abc   
9         10  20   30
10 Out:    <abc>
11         <10>
12         <20>
13         <30>
14
15 # The same test case in line mode
16 Name:   std-l
17 Run:    bin/test-tok -l 2>&1
18 In:        abc   
19         10  20   30
20 Out:    <abc>
21         <>
22         <10>
23         <20>
24         <30>
25         <>
26
27 # An unterminated line
28 Name:   unterm
29 Run:    tr -d '\n' | bin/test-tok 2>&1
30 In:     abc
31 Out:    <abc>
32
33 # An unterminated line in line mode
34 Name:   unterm-l
35 Run:    tr -d '\n' | bin/test-tok -l 2>&1
36 In:     abc
37 Out:    <abc>
38
39 # Small token size limit, but fits
40 Name:   big1
41 Run:    bin/test-tok -s 2>&1
42 In:     abcdefghijklmnop
43 Out:    <abcdefghijklmnop>
44
45 # Small token size limit, does not fit
46 Name:   big2
47 Run:    bin/test-tok -s 2>&1
48 In:     abcdefghijklmnopq
49 Exit:   1
50
51 # Testing parsers
52 Name:   parse1
53 Run:    bin/test-tok -vl 2>&1
54 In:     abcdef
55         0 5 -5
56 Out:    <abcdef>
57         <>
58         <0> = int 0 = uint 0 = long 0 = ulong 0 = double 0.000000 = long_double 0.000000
59         <5> = int 5 = uint 5 = long 5 = ulong 5 = double 5.000000 = long_double 5.000000
60         <-5> = int -5 = long -5 = double -5.000000 = long_double -5.000000
61         <>
62
63 # More parsing: integer extremes
64 Name:   parse2
65 Run:    bin/test-tok -v 2>&1
66 In:     -2147483647 2147483647
67         -2147483648 2147483648
68         -4294967295 4294967295
69         -4294967296 4294967296
70 Out:    <-2147483647> = int -2147483647 = long -2147483647 = double -2147483647.000000 = long_double -2147483647.000000
71         <2147483647> = int 2147483647 = uint 2147483647 = long 2147483647 = ulong 2147483647 = double 2147483647.000000 = long_double 2147483647.000000
72         <-2147483648> = int -2147483648 = long -2147483648 = double -2147483648.000000 = long_double -2147483648.000000
73         <2147483648> = uint 2147483648 = ulong 2147483648 = double 2147483648.000000 = long_double 2147483648.000000
74         <-4294967295> = double -4294967295.000000 = long_double -4294967295.000000
75         <4294967295> = uint 4294967295 = ulong 4294967295 = double 4294967295.000000 = long_double 4294967295.000000
76         <-4294967296> = double -4294967296.000000 = long_double -4294967296.000000
77         <4294967296> = double 4294967296.000000 = long_double 4294967296.000000
78
79 # More parsing: floating point numbers
80 Name:   parse3
81 In:     1000000000
82         0. .0 .
83         0 +0 -0
84         +5 -5
85         +1e+5 -1e-5
86         1e+99999
87 Out:    <1000000000> = int 1000000000 = uint 1000000000 = long 1000000000 = ulong 1000000000 = double 1000000000.000000 = long_double 1000000000.000000
88         <0.> = double 0.000000 = long_double 0.000000
89         <.0> = double 0.000000 = long_double 0.000000
90         <.>
91         <0> = int 0 = uint 0 = long 0 = ulong 0 = double 0.000000 = long_double 0.000000
92         <+0> = int 0 = uint 0 = long 0 = ulong 0 = double 0.000000 = long_double 0.000000
93         <-0> = int 0 = long 0 = double -0.000000 = long_double -0.000000
94         <+5> = int 5 = uint 5 = long 5 = ulong 5 = double 5.000000 = long_double 5.000000
95         <-5> = int -5 = long -5 = double -5.000000 = long_double -5.000000
96         <+1e+5> = double 100000.000000 = long_double 100000.000000
97         <-1e-5> = double -0.000010 = long_double -0.000010
98         <1e+99999>