Skip to content

Commit 753061d

Browse files
add more multipleOf variations
an implementation might use a different internal representation for 1.0 vs 1, therefore we test both
1 parent 62b1b06 commit 753061d

File tree

6 files changed

+450
-54
lines changed

6 files changed

+450
-54
lines changed

tests/draft-next/multipleOf.json

+75-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,64 @@
11
[
22
{
3-
"description": "by int",
4-
"schema": {"multipleOf": 2},
3+
"description": "by integer",
4+
"schema": { "multipleOf": 2 },
55
"tests": [
66
{
7-
"description": "int by int",
7+
"description": "integer by integer",
88
"data": 10,
99
"valid": true
1010
},
1111
{
12-
"description": "int by int fail",
12+
"description": "integer by integer fail",
1313
"data": 7,
1414
"valid": false
1515
},
16+
{
17+
"description": "integer by integer float",
18+
"data": 4.0,
19+
"valid": true
20+
},
21+
{
22+
"description": "integer by number fail",
23+
"data": 7.5,
24+
"valid": false
25+
},
26+
{
27+
"description": "integer by integer float fail",
28+
"data": 7.0,
29+
"valid": false
30+
},
31+
{
32+
"description": "ignores non-numbers",
33+
"data": "foo",
34+
"valid": true
35+
}
36+
]
37+
},
38+
{
39+
"description": "by integer float",
40+
"schema": { "multipleOf": 2.0 },
41+
"tests": [
42+
{
43+
"description": "integer by integer",
44+
"data": 10,
45+
"valid": true
46+
},
47+
{
48+
"description": "integer by integer fail",
49+
"data": 7,
50+
"valid": false
51+
},
52+
{
53+
"description": "integer by integer float",
54+
"data": 4.0,
55+
"valid": true
56+
},
57+
{
58+
"description": "integer by number fail",
59+
"data": 7.5,
60+
"valid": false
61+
},
1662
{
1763
"description": "ignores non-numbers",
1864
"data": "foo",
@@ -21,23 +67,43 @@
2167
]
2268
},
2369
{
24-
"description": "by number",
25-
"schema": {"multipleOf": 1.5},
70+
"description": "by non-integer number",
71+
"schema": { "multipleOf": 1.5 },
2672
"tests": [
2773
{
2874
"description": "zero is multiple of anything",
2975
"data": 0,
3076
"valid": true
3177
},
3278
{
33-
"description": "4.5 is multiple of 1.5",
34-
"data": 4.5,
79+
"description": "float by integer",
80+
"data": 6,
3581
"valid": true
3682
},
3783
{
38-
"description": "35 is not multiple of 1.5",
84+
"description": "float by integer fail",
3985
"data": 35,
4086
"valid": false
87+
},
88+
{
89+
"description": "float by float",
90+
"data": 4.5,
91+
"valid": true
92+
},
93+
{
94+
"description": "float by float fail",
95+
"data": 7.2,
96+
"valid": false
97+
},
98+
{
99+
"description": "float by integer float",
100+
"data": 6.0,
101+
"valid": true
102+
},
103+
{
104+
"description": "float by integer float fail",
105+
"data": 35.0,
106+
"valid": false
41107
}
42108
]
43109
},

tests/draft2019-09/multipleOf.json

+75-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,64 @@
11
[
22
{
3-
"description": "by int",
4-
"schema": {"multipleOf": 2},
3+
"description": "by integer",
4+
"schema": { "multipleOf": 2 },
55
"tests": [
66
{
7-
"description": "int by int",
7+
"description": "integer by integer",
88
"data": 10,
99
"valid": true
1010
},
1111
{
12-
"description": "int by int fail",
12+
"description": "integer by integer fail",
1313
"data": 7,
1414
"valid": false
1515
},
16+
{
17+
"description": "integer by integer float",
18+
"data": 4.0,
19+
"valid": true
20+
},
21+
{
22+
"description": "integer by number fail",
23+
"data": 7.5,
24+
"valid": false
25+
},
26+
{
27+
"description": "integer by integer float fail",
28+
"data": 7.0,
29+
"valid": false
30+
},
31+
{
32+
"description": "ignores non-numbers",
33+
"data": "foo",
34+
"valid": true
35+
}
36+
]
37+
},
38+
{
39+
"description": "by integer float",
40+
"schema": { "multipleOf": 2.0 },
41+
"tests": [
42+
{
43+
"description": "integer by integer",
44+
"data": 10,
45+
"valid": true
46+
},
47+
{
48+
"description": "integer by integer fail",
49+
"data": 7,
50+
"valid": false
51+
},
52+
{
53+
"description": "integer by integer float",
54+
"data": 4.0,
55+
"valid": true
56+
},
57+
{
58+
"description": "integer by number fail",
59+
"data": 7.5,
60+
"valid": false
61+
},
1662
{
1763
"description": "ignores non-numbers",
1864
"data": "foo",
@@ -21,23 +67,43 @@
2167
]
2268
},
2369
{
24-
"description": "by number",
25-
"schema": {"multipleOf": 1.5},
70+
"description": "by non-integer number",
71+
"schema": { "multipleOf": 1.5 },
2672
"tests": [
2773
{
2874
"description": "zero is multiple of anything",
2975
"data": 0,
3076
"valid": true
3177
},
3278
{
33-
"description": "4.5 is multiple of 1.5",
34-
"data": 4.5,
79+
"description": "float by integer",
80+
"data": 6,
3581
"valid": true
3682
},
3783
{
38-
"description": "35 is not multiple of 1.5",
84+
"description": "float by integer fail",
3985
"data": 35,
4086
"valid": false
87+
},
88+
{
89+
"description": "float by float",
90+
"data": 4.5,
91+
"valid": true
92+
},
93+
{
94+
"description": "float by float fail",
95+
"data": 7.2,
96+
"valid": false
97+
},
98+
{
99+
"description": "float by integer float",
100+
"data": 6.0,
101+
"valid": true
102+
},
103+
{
104+
"description": "float by integer float fail",
105+
"data": 35.0,
106+
"valid": false
41107
}
42108
]
43109
},

tests/draft2020-12/multipleOf.json

+75-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,64 @@
11
[
22
{
3-
"description": "by int",
4-
"schema": {"multipleOf": 2},
3+
"description": "by integer",
4+
"schema": { "multipleOf": 2 },
55
"tests": [
66
{
7-
"description": "int by int",
7+
"description": "integer by integer",
88
"data": 10,
99
"valid": true
1010
},
1111
{
12-
"description": "int by int fail",
12+
"description": "integer by integer fail",
1313
"data": 7,
1414
"valid": false
1515
},
16+
{
17+
"description": "integer by integer float",
18+
"data": 4.0,
19+
"valid": true
20+
},
21+
{
22+
"description": "integer by number fail",
23+
"data": 7.5,
24+
"valid": false
25+
},
26+
{
27+
"description": "integer by integer float fail",
28+
"data": 7.0,
29+
"valid": false
30+
},
31+
{
32+
"description": "ignores non-numbers",
33+
"data": "foo",
34+
"valid": true
35+
}
36+
]
37+
},
38+
{
39+
"description": "by integer float",
40+
"schema": { "multipleOf": 2.0 },
41+
"tests": [
42+
{
43+
"description": "integer by integer",
44+
"data": 10,
45+
"valid": true
46+
},
47+
{
48+
"description": "integer by integer fail",
49+
"data": 7,
50+
"valid": false
51+
},
52+
{
53+
"description": "integer by integer float",
54+
"data": 4.0,
55+
"valid": true
56+
},
57+
{
58+
"description": "integer by number fail",
59+
"data": 7.5,
60+
"valid": false
61+
},
1662
{
1763
"description": "ignores non-numbers",
1864
"data": "foo",
@@ -21,23 +67,43 @@
2167
]
2268
},
2369
{
24-
"description": "by number",
25-
"schema": {"multipleOf": 1.5},
70+
"description": "by non-integer number",
71+
"schema": { "multipleOf": 1.5 },
2672
"tests": [
2773
{
2874
"description": "zero is multiple of anything",
2975
"data": 0,
3076
"valid": true
3177
},
3278
{
33-
"description": "4.5 is multiple of 1.5",
34-
"data": 4.5,
79+
"description": "float by integer",
80+
"data": 6,
3581
"valid": true
3682
},
3783
{
38-
"description": "35 is not multiple of 1.5",
84+
"description": "float by integer fail",
3985
"data": 35,
4086
"valid": false
87+
},
88+
{
89+
"description": "float by float",
90+
"data": 4.5,
91+
"valid": true
92+
},
93+
{
94+
"description": "float by float fail",
95+
"data": 7.2,
96+
"valid": false
97+
},
98+
{
99+
"description": "float by integer float",
100+
"data": 6.0,
101+
"valid": true
102+
},
103+
{
104+
"description": "float by integer float fail",
105+
"data": 35.0,
106+
"valid": false
41107
}
42108
]
43109
},

0 commit comments

Comments
 (0)