Files
zen/core/expression/tests/data/standard.csv
T
stefan-gorules 78d8d2632a feat: date functions; (#91)
* feat: date functions;

* add tests
2023-09-21 16:19:43 +02:00

5.8 KiB

1expression (string);input (json 5);output (json 5)
2# Boolean
3true and true;;true
4true and false;;false
5false and true;;false
6false and false;;false
7true or true;;true
8true or false;;true
9false or true;;true
10false or false;;false
11not true;;false
12not false;;true
13# Numbers
141 == 1;;true
151 == 2;;false
161 != 2;;true
171 != 1;;false
181 < 2;;true
191 < 1;;false
201 <= 1;;true
212 <= 1;;false
222 > 1;;true
231 > 1;;false
241 >= 1;;true
251 >= 2;;false
26-1 == -1;;true
27-1 == 1;;false
28-1 != 1;;true
29-1 != -1;;false
30-1 < 1;;true
31-1 < -1;;false
32-1 <= -1;;true
331 <= -1;;false
341 > -1;;true
35-1 > -1;;false
36-1 >= -1;;true
37-1 >= 1;;false
381 + 2 == 3;;true
391 + 2 == 4;;false
401 - 2 == -1;;true
411 - 2 == 0;;false
422 * 3 == 6;;true
432 * 3 == 7;;false
446 / 3 == 2;;true
456 / 3 == 2.5;;false
465 % 2 == 1;;true
476 % 2 == 0;;true
48-5 + 5 == 0;;true
49-5 * 5 == -25;;true
50-5 * -5 == 25;;true
51abs(-5) == 5;;true
52abs(5) == 5;;true
532 ^ 3 == 8;;true
542 ^ -1 == 0.5;;true
55max([35]) == 5;;true
56max([-3-5]) == -3;;true
57min([35]) == 3;;true
58min([-3-5]) == -5;;true
593 + 4 * 2;;11
60(3 + 4) * 2;;14
61(10 - 4) / 2;;3
62abs(-5);;5
63sum([12345]);;15
64avg([102030]);;20
65min([582117]);;2
66max([582117]);;11
67floor(4.8);;4
68ceil(4.1);;5
69round(3.5);;4
70rand(100) >= 0 and rand(100) <= 100;;true
71median([42753]);;4
72mode([1223334444]);;4
735 % 2 == 1;;true
7410 % 4 == 2;;true
75true ? 10 == 10 : 20 == 30;;true
76false ? 10 == 10 : 20 == 30;;false
77true ? 10 == 20 : false ? 30 == 40 : true ? 50 == 60 : 70 == 80;;false
78# String
79# Array
80len([12345]);; 5
81sum([12345]);; 15
82avg([102030]);; 20
83min([582117]);; 2
84max([582117]);; 11
85contains([12345]3);; true
86contains([12345]6);; false
87count([123452]# == 2);; 2
88filter([12345]# > 3);; [45]
89map([12345]# * 2);; [246810]
90one([12345]# == 3);; true
91one([12345]# == 6);; false
92none([12345]# > 5);; true
93some([12345]# > 3);; true
94flatMap([[12][34][56]]#);; [123456]
95# Dates
96# Decimal precision
970.1 + 0.2 == 0.3;; true
980.1 + 0.2;; 0.3
990.1 * 0.2 == 0.02;; true
1000.1 * 0.2;; 0.02
1010.3 - 0.1 == 0.2;; true
1020.3 - 0.1;; 0.2
1030.3 / 0.1 == 3.0;; true
1040.3 / 0.1;; 3
105# More complex formulas
106(10 + 5) * 3 / 2 > 15;; true
107(100 - 25) / (5 * 2) < 10;; true
1081000 / (10 - 2) + 50 == 175;; true
109(3 + 4) * (8 - 6) == 14;; true
11010^3 != 999;; true
1111000 / 10^3 <= 1.1;; true
112abs(-20) > 10;; true
113floor(8.9) == 8;; true
114ceil(8.1) == 9;; true
115round(7.6) == 8;; true
11610 % 3 != 0;; true
117-8 + 2^3 == 0;; true
1182 * -(-5) == 10;; true
11920 / (5 / 2) == 8.0;; true
120(4 + 2) * 3 - (5 / 2) + 1 < 18;; true
1215^2 + 3 * 4 - 6 / 2 > 20;; true
1224^3 - 2 * 5 + 7 / 2 == 57.5;; true
123abs(-7 + 4) * (8 - 6^2) < 34;; true
1245 in [1..10];; true
1255 in (1..10);; true
1265 not in [1..10);; false
1275 not in (1..10);; false
128-5 in [-10..-1];; true
129-5 in [-10..-1);; true
130-5 not in [-10..-1];; false
131-5 not in [-10..-1);; false
132-5 in [-5..5];; true
133-5 in (-5..5);; false
134-5 not in [-5..5);; false
135-5 not in (-5..5);; true
13610 > 5;; true
1375 < 10;; true
13810 >= 10;; true
1395 <= 5;; true
140(1 + 2) == 3;; true
141(1 + 2) != 4;; true
142(1 + 2) > 2;; true
143(1 + 2) < 5;; true
144# Date Functions;;
145dateString(startOf('2023-01-01 15:45:01''day'));;'2023-01-01 00:00:00'
146dateString(endOf('2023-01-01 15:45:01''d'));;'2023-01-01 23:59:59'
147dateString(startOf('2023-01-01 15:45:01''hour'));;'2023-01-01 15:00:00'
148dateString(endOf('2023-01-01 15:45:01''h'));;'2023-01-01 15:59:59'
149dateString(startOf('2023-01-01 15:45:01''minute'));;'2023-01-01 15:45:00'
150dateString(endOf('2023-01-01 15:45:01''m'));;'2023-01-01 15:45:59'
151dateString(startOf('2023-01-04 15:45:01''week'));;'2023-01-02 00:00:00'
152dateString(endOf('2023-01-04 15:45:01''w'));;'2023-01-08 23:59:59'
153dateString(startOf('2023-01-04 15:45:01''month'));;'2023-01-01 00:00:00'
154dateString(endOf('2023-01-04 15:45:01''M'));;'2023-01-31 23:59:59'
155dateString(startOf('2023-01-04 15:45:01''year'));;'2023-01-01 00:00:00'
156dateString(endOf('2023-01-04 15:45:01''y'));;'2023-12-31 23:59:59'