1+ [
2+ " # Collection of Divide Operator Tests" ,
3+ {
4+ "description" : " Divide" ,
5+ "rule" : { "/" : [4 , 2 ] },
6+ "result" : 2 ,
7+ "data" : null
8+ },
9+ {
10+ "description" : " Divide to Decimal" ,
11+ "rule" : { "/" : [2 , 4 ] },
12+ "result" : 0.5 ,
13+ "data" : null ,
14+ "decimal" : true
15+ },
16+ {
17+ "description" : " Divide with Multiple Operands" ,
18+ "rule" : { "/" : [8 , 2 , 2 ] },
19+ "result" : 2 ,
20+ "data" : null
21+ },
22+ {
23+ "description" : " Divide with Multiple Operands (2)" ,
24+ "rule" : { "/" : [2 , 2 , 1 ] },
25+ "result" : 1 ,
26+ "data" : null
27+ },
28+ {
29+ "description" : " Divide with Negative Numbers" ,
30+ "rule" : { "/" : [-1 , 2 ] },
31+ "result" : -0.5 ,
32+ "data" : null ,
33+ "decimal" : true
34+ },
35+ {
36+ "description" : " Divide with Strings" ,
37+ "rule" : { "/" : [" 8" , " 2" , " 2" ] },
38+ "result" : 2 ,
39+ "data" : null
40+ },
41+ {
42+ "description" : " Divide with Booleans" ,
43+ "rule" : { "/" : [false , true ] },
44+ "result" : 0 ,
45+ "data" : null
46+ },
47+ {
48+ "description" : " Divide with Multiple Value Types" ,
49+ "rule" : { "/" : [" 8" , true , 2 ] },
50+ "result" : 4 ,
51+ "data" : null
52+ },
53+ {
54+ "description" : " Divide with Multiple Value Types (2)" ,
55+ "rule" : { "/" : [" 1" , 1 ] },
56+ "result" : 1 ,
57+ "data" : null
58+ },
59+ {
60+ "description" : " Divide with Single Operand (Number)" ,
61+ "rule" : { "/" : [1 ] },
62+ "result" : 1 ,
63+ "data" : null
64+ },
65+ {
66+ "description" : " Divide with zero operands is an error" ,
67+ "rule" : { "/" : [] },
68+ "error" : { "type" : " Invalid Arguments" },
69+ "data" : null
70+ },
71+ {
72+ "description" : " Divide with Single Operand, Direct (Number)" ,
73+ "rule" : { "/" : 1 },
74+ "result" : 1 ,
75+ "data" : null
76+ },
77+ {
78+ "description" : " Divide with Single Operand, Direct (0)" ,
79+ "rule" : { "/" : 0 },
80+ "error" : { "type" : " NaN" },
81+ "data" : null
82+ },
83+ {
84+ "description" : " Divide Operator with Single Operand (Number)" ,
85+ "rule" : { "/" : [1 ] },
86+ "result" : 1 ,
87+ "data" : null
88+ },
89+ {
90+ "description" : " Divide Operator with Single Operand (Negative Number)" ,
91+ "rule" : { "/" : [-1 ] },
92+ "result" : -1 ,
93+ "data" : null
94+ },
95+ {
96+ "description" : " Divide Operator with Single Operand, Direct (Number)" ,
97+ "rule" : { "/" : 1 },
98+ "result" : 1 ,
99+ "data" : null
100+ },
101+ {
102+ "description" : " Divide Operator with Single Operand, Direct (2)" ,
103+ "rule" : { "/" : 2 },
104+ "result" : 0.5 ,
105+ "decimal" : true ,
106+ "data" : null
107+ },
108+ {
109+ "description" : " Divide Operator with Single Operand, Direct (0)" ,
110+ "rule" : { "/" : 0 },
111+ "error" : { "type" : " NaN" },
112+ "data" : null
113+ },
114+ {
115+ "description" : " Divide Operator with Single Operand (String)" ,
116+ "rule" : { "/" : [" 1" ] },
117+ "result" : 1 ,
118+ "data" : null
119+ },
120+ {
121+ "description" : " Divide Operator with Single Operand, Direct (Negative Number String)" ,
122+ "rule" : { "/" : " -1" },
123+ "result" : -1 ,
124+ "data" : null
125+ },
126+
127+ {
128+ "description" : " Divide Operator with Single Operand, Direct (String 0)" ,
129+ "rule" : { "/" : " 0" },
130+ "error" : { "type" : " NaN" },
131+ "data" : null
132+ },
133+ {
134+ "description" : " Divide Operator with Single Operand, Direct (true)" ,
135+ "rule" : { "/" : true },
136+ "result" : 1 ,
137+ "data" : null
138+ },
139+ {
140+ "description" : " Divide Operator with Single Operand, Direct (false)" ,
141+ "rule" : { "/" : false },
142+ "error" : { "type" : " NaN" },
143+ "data" : null
144+ },
145+ {
146+ "description" : " Divide Operator with Single Operand, Direct (Empty String)" ,
147+ "rule" : { "/" : " " },
148+ "error" : { "type" : " NaN" },
149+ "data" : null
150+ },
151+ {
152+ "description" : " Divide Operator with a Single Operand, Direct (null)" ,
153+ "rule" : { "/" : null },
154+ "error" : { "type" : " NaN" },
155+ "data" : null
156+ },
157+ {
158+ "description" : " Divide with val" ,
159+ "rule" : { "/" : [{ "val" : " x" }, { "val" : " y" }] },
160+ "data" : { "x" : 8 , "y" : 2 },
161+ "result" : 4
162+ },
163+ {
164+ "description" : " Divide by Zero" ,
165+ "rule" : { "/" : [0 , 0 ] },
166+ "error" : { "type" : " NaN" },
167+ "data" : null
168+ },
169+ {
170+ "description" : " Divide with String produces NaN" ,
171+ "rule" : { "/" : [1 , " a" ] },
172+ "error" : { "type" : " NaN" },
173+ "data" : null
174+ },
175+ {
176+ "description" : " Divide with Array produces NaN" ,
177+ "rule" : { "/" : [1 , [1 ]] },
178+ "error" : { "type" : " NaN" },
179+ "data" : null
180+ },
181+ {
182+ "description" : " Any division by zero should return NaN" ,
183+ "rule" : { "/" : [1 , 0 ] },
184+ "error" : { "type" : " NaN" },
185+ "data" : null
186+ },
187+ {
188+ "description" : " Any division by zero should return NaN (2)" ,
189+ "rule" : { "/" : [8 , 2 , 0 ] },
190+ "error" : { "type" : " NaN" },
191+ "data" : null
192+ }
193+ ]
0 commit comments