mirror of
https://github.com/gorules/zen.git
synced 2026-10-04 16:02:18 +00:00
5.8 KiB
5.8 KiB
| 1 | expression (string);input (json 5);output (json 5) | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | # Boolean | |||||||||||
| 3 | true and true;;true | |||||||||||
| 4 | true and false;;false | |||||||||||
| 5 | false and true;;false | |||||||||||
| 6 | false and false;;false | |||||||||||
| 7 | true or true;;true | |||||||||||
| 8 | true or false;;true | |||||||||||
| 9 | false or true;;true | |||||||||||
| 10 | false or false;;false | |||||||||||
| 11 | not true;;false | |||||||||||
| 12 | not false;;true | |||||||||||
| 13 | # Numbers | |||||||||||
| 14 | 1 == 1;;true | |||||||||||
| 15 | 1 == 2;;false | |||||||||||
| 16 | 1 != 2;;true | |||||||||||
| 17 | 1 != 1;;false | |||||||||||
| 18 | 1 < 2;;true | |||||||||||
| 19 | 1 < 1;;false | |||||||||||
| 20 | 1 <= 1;;true | |||||||||||
| 21 | 2 <= 1;;false | |||||||||||
| 22 | 2 > 1;;true | |||||||||||
| 23 | 1 > 1;;false | |||||||||||
| 24 | 1 >= 1;;true | |||||||||||
| 25 | 1 >= 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 | |||||||||||
| 33 | 1 <= -1;;false | |||||||||||
| 34 | 1 > -1;;true | |||||||||||
| 35 | -1 > -1;;false | |||||||||||
| 36 | -1 >= -1;;true | |||||||||||
| 37 | -1 >= 1;;false | |||||||||||
| 38 | 1 + 2 == 3;;true | |||||||||||
| 39 | 1 + 2 == 4;;false | |||||||||||
| 40 | 1 - 2 == -1;;true | |||||||||||
| 41 | 1 - 2 == 0;;false | |||||||||||
| 42 | 2 * 3 == 6;;true | |||||||||||
| 43 | 2 * 3 == 7;;false | |||||||||||
| 44 | 6 / 3 == 2;;true | |||||||||||
| 45 | 6 / 3 == 2.5;;false | |||||||||||
| 46 | 5 % 2 == 1;;true | |||||||||||
| 47 | 6 % 2 == 0;;true | |||||||||||
| 48 | -5 + 5 == 0;;true | |||||||||||
| 49 | -5 * 5 == -25;;true | |||||||||||
| 50 | -5 * -5 == 25;;true | |||||||||||
| 51 | abs(-5) == 5;;true | |||||||||||
| 52 | abs(5) == 5;;true | |||||||||||
| 53 | 2 ^ 3 == 8;;true | |||||||||||
| 54 | 2 ^ -1 == 0.5;;true | |||||||||||
| 55 | max([3 | 5]) == 5;;true | ||||||||||
| 56 | max([-3 | -5]) == -3;;true | ||||||||||
| 57 | min([3 | 5]) == 3;;true | ||||||||||
| 58 | min([-3 | -5]) == -5;;true | ||||||||||
| 59 | 3 + 4 * 2;;11 | |||||||||||
| 60 | (3 + 4) * 2;;14 | |||||||||||
| 61 | (10 - 4) / 2;;3 | |||||||||||
| 62 | abs(-5);;5 | |||||||||||
| 63 | sum([1 | 2 | 3 | 4 | 5]);;15 | |||||||
| 64 | avg([10 | 20 | 30]);;20 | |||||||||
| 65 | min([5 | 8 | 2 | 11 | 7]);;2 | |||||||
| 66 | max([5 | 8 | 2 | 11 | 7]);;11 | |||||||
| 67 | floor(4.8);;4 | |||||||||||
| 68 | ceil(4.1);;5 | |||||||||||
| 69 | round(3.5);;4 | |||||||||||
| 70 | rand(100) >= 0 and rand(100) <= 100;;true | |||||||||||
| 71 | median([4 | 2 | 7 | 5 | 3]);;4 | |||||||
| 72 | mode([1 | 2 | 2 | 3 | 3 | 3 | 4 | 4 | 4 | 4]);;4 | ||
| 73 | 5 % 2 == 1;;true | |||||||||||
| 74 | 10 % 4 == 2;;true | |||||||||||
| 75 | true ? 10 == 10 : 20 == 30;;true | |||||||||||
| 76 | false ? 10 == 10 : 20 == 30;;false | |||||||||||
| 77 | true ? 10 == 20 : false ? 30 == 40 : true ? 50 == 60 : 70 == 80;;false | |||||||||||
| 78 | # String | |||||||||||
| 79 | # Array | |||||||||||
| 80 | len([1 | 2 | 3 | 4 | 5]);; 5 | |||||||
| 81 | sum([1 | 2 | 3 | 4 | 5]);; 15 | |||||||
| 82 | avg([10 | 20 | 30]);; 20 | |||||||||
| 83 | min([5 | 8 | 2 | 11 | 7]);; 2 | |||||||
| 84 | max([5 | 8 | 2 | 11 | 7]);; 11 | |||||||
| 85 | contains([1 | 2 | 3 | 4 | 5] | 3);; true | ||||||
| 86 | contains([1 | 2 | 3 | 4 | 5] | 6);; false | ||||||
| 87 | count([1 | 2 | 3 | 4 | 5 | 2] | # == 2);; 2 | |||||
| 88 | filter([1 | 2 | 3 | 4 | 5] | # > 3);; [4 | 5] | |||||
| 89 | map([1 | 2 | 3 | 4 | 5] | # * 2);; [2 | 4 | 6 | 8 | 10] | ||
| 90 | one([1 | 2 | 3 | 4 | 5] | # == 3);; true | ||||||
| 91 | one([1 | 2 | 3 | 4 | 5] | # == 6);; false | ||||||
| 92 | none([1 | 2 | 3 | 4 | 5] | # > 5);; true | ||||||
| 93 | some([1 | 2 | 3 | 4 | 5] | # > 3);; true | ||||||
| 94 | flatMap([[1 | 2] | [3 | 4] | [5 | 6]] | #);; [1 | 2 | 3 | 4 | 5 | 6] |
| 95 | # Dates | |||||||||||
| 96 | # Decimal precision | |||||||||||
| 97 | 0.1 + 0.2 == 0.3;; true | |||||||||||
| 98 | 0.1 + 0.2;; 0.3 | |||||||||||
| 99 | 0.1 * 0.2 == 0.02;; true | |||||||||||
| 100 | 0.1 * 0.2;; 0.02 | |||||||||||
| 101 | 0.3 - 0.1 == 0.2;; true | |||||||||||
| 102 | 0.3 - 0.1;; 0.2 | |||||||||||
| 103 | 0.3 / 0.1 == 3.0;; true | |||||||||||
| 104 | 0.3 / 0.1;; 3 | |||||||||||
| 105 | # More complex formulas | |||||||||||
| 106 | (10 + 5) * 3 / 2 > 15;; true | |||||||||||
| 107 | (100 - 25) / (5 * 2) < 10;; true | |||||||||||
| 108 | 1000 / (10 - 2) + 50 == 175;; true | |||||||||||
| 109 | (3 + 4) * (8 - 6) == 14;; true | |||||||||||
| 110 | 10^3 != 999;; true | |||||||||||
| 111 | 1000 / 10^3 <= 1.1;; true | |||||||||||
| 112 | abs(-20) > 10;; true | |||||||||||
| 113 | floor(8.9) == 8;; true | |||||||||||
| 114 | ceil(8.1) == 9;; true | |||||||||||
| 115 | round(7.6) == 8;; true | |||||||||||
| 116 | 10 % 3 != 0;; true | |||||||||||
| 117 | -8 + 2^3 == 0;; true | |||||||||||
| 118 | 2 * -(-5) == 10;; true | |||||||||||
| 119 | 20 / (5 / 2) == 8.0;; true | |||||||||||
| 120 | (4 + 2) * 3 - (5 / 2) + 1 < 18;; true | |||||||||||
| 121 | 5^2 + 3 * 4 - 6 / 2 > 20;; true | |||||||||||
| 122 | 4^3 - 2 * 5 + 7 / 2 == 57.5;; true | |||||||||||
| 123 | abs(-7 + 4) * (8 - 6^2) < 34;; true | |||||||||||
| 124 | 5 in [1..10];; true | |||||||||||
| 125 | 5 in (1..10);; true | |||||||||||
| 126 | 5 not in [1..10);; false | |||||||||||
| 127 | 5 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 | |||||||||||
| 136 | 10 > 5;; true | |||||||||||
| 137 | 5 < 10;; true | |||||||||||
| 138 | 10 >= 10;; true | |||||||||||
| 139 | 5 <= 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;; | |||||||||||
| 145 | dateString(startOf('2023-01-01 15:45:01' | 'day'));;'2023-01-01 00:00:00' | ||||||||||
| 146 | dateString(endOf('2023-01-01 15:45:01' | 'd'));;'2023-01-01 23:59:59' | ||||||||||
| 147 | dateString(startOf('2023-01-01 15:45:01' | 'hour'));;'2023-01-01 15:00:00' | ||||||||||
| 148 | dateString(endOf('2023-01-01 15:45:01' | 'h'));;'2023-01-01 15:59:59' | ||||||||||
| 149 | dateString(startOf('2023-01-01 15:45:01' | 'minute'));;'2023-01-01 15:45:00' | ||||||||||
| 150 | dateString(endOf('2023-01-01 15:45:01' | 'm'));;'2023-01-01 15:45:59' | ||||||||||
| 151 | dateString(startOf('2023-01-04 15:45:01' | 'week'));;'2023-01-02 00:00:00' | ||||||||||
| 152 | dateString(endOf('2023-01-04 15:45:01' | 'w'));;'2023-01-08 23:59:59' | ||||||||||
| 153 | dateString(startOf('2023-01-04 15:45:01' | 'month'));;'2023-01-01 00:00:00' | ||||||||||
| 154 | dateString(endOf('2023-01-04 15:45:01' | 'M'));;'2023-01-31 23:59:59' | ||||||||||
| 155 | dateString(startOf('2023-01-04 15:45:01' | 'year'));;'2023-01-01 00:00:00' | ||||||||||
| 156 | dateString(endOf('2023-01-04 15:45:01' | 'y'));;'2023-12-31 23:59:59' |