/
number_feature.test
124 lines (110 loc) · 2.45 KB
/
number_feature.test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
42
3.14159
4e10
3.2E+6
2.1e-10
0b1101
0o571
0xbabe
0xBABE
NaN
Infinity
123n
0x123n
1_000_000_000_000
1_000_000.220_720
0b0101_0110_0011_1000
0o12_34_56
0x40_76_38_6A_73
4_642_473_943_484_686_707n
0.000_001
1e10_000
0xf_f_f_f_ffn
0xf_f_f_f_f
0b1_1_1_1
0b0_0_1_0_1_0_1n
0o1_1_3_2
0o1_1_3_2n
2.2_4_54e64_33
2.2_4_54e+64_33
2.2_4_54e-64_33
3_4_5
3_4_5n
3_4_5.5_5_6
// not numbers
$1234;
$0xFF;
$0b0101;
$1234n;
$0xFFn;
$0b0101n;
_1234;
_0xFF;
_0b0101;
_1234n;
_0xFFn;
_0b0101n;
abc1234;
abc0xFF;
abc0b0101;
abc1234n;
abc0xFFn;
abc0b0101n;
----------------------------------------------------
[
["number", "42"],
["number", "3.14159"],
["number", "4e10"],
["number", "3.2E+6"],
["number", "2.1e-10"],
["number", "0b1101"],
["number", "0o571"],
["number", "0xbabe"],
["number", "0xBABE"],
["number", "NaN"],
["number", "Infinity"],
["number", "123n"],
["number", "0x123n"],
["number", "1_000_000_000_000"],
["number", "1_000_000.220_720"],
["number", "0b0101_0110_0011_1000"],
["number", "0o12_34_56"],
["number", "0x40_76_38_6A_73"],
["number", "4_642_473_943_484_686_707n"],
["number", "0.000_001"],
["number", "1e10_000"],
["number", "0xf_f_f_f_ffn"],
["number", "0xf_f_f_f_f"],
["number", "0b1_1_1_1"],
["number", "0b0_0_1_0_1_0_1n"],
["number", "0o1_1_3_2"],
["number", "0o1_1_3_2n"],
["number", "2.2_4_54e64_33"],
["number", "2.2_4_54e+64_33"],
["number", "2.2_4_54e-64_33"],
["number", "3_4_5"],
["number", "3_4_5n"],
["number", "3_4_5.5_5_6"],
["comment", "// not numbers"],
"\r\n$1234", ["punctuation", ";"],
"\r\n$0xFF", ["punctuation", ";"],
"\r\n$0b0101", ["punctuation", ";"],
"\r\n$1234n", ["punctuation", ";"],
"\r\n$0xFFn", ["punctuation", ";"],
"\r\n$0b0101n", ["punctuation", ";"],
"\r\n_1234", ["punctuation", ";"],
"\r\n_0xFF", ["punctuation", ";"],
"\r\n_0b0101", ["punctuation", ";"],
"\r\n_1234n", ["punctuation", ";"],
"\r\n_0xFFn", ["punctuation", ";"],
"\r\n_0b0101n", ["punctuation", ";"],
"\r\nabc1234", ["punctuation", ";"],
"\r\nabc0xFF", ["punctuation", ";"],
"\r\nabc0b0101", ["punctuation", ";"],
"\r\nabc1234n", ["punctuation", ";"],
"\r\nabc0xFFn", ["punctuation", ";"],
"\r\nabc0b0101n", ["punctuation", ";"]
]
----------------------------------------------------
Checks for decimal numbers, binary numbers, octal numbers, hexadecimal numbers.
Also checks for keywords representing numbers.