@fincity/kirun-js 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/.prettierrc +9 -0
  2. package/__tests__/engine/function/system/array/AddFirstTest.ts +235 -0
  3. package/__tests__/engine/function/system/array/AddTest.ts +126 -0
  4. package/__tests__/engine/function/system/array/BinarySearchTest.ts +135 -0
  5. package/__tests__/engine/function/system/array/CompareTest.ts +48 -0
  6. package/__tests__/engine/function/system/array/CopyTest.ts +86 -0
  7. package/__tests__/engine/function/system/array/DeleteFirstTest.ts +103 -0
  8. package/__tests__/engine/function/system/array/DeleteFromTest.ts +232 -0
  9. package/__tests__/engine/function/system/array/DeleteLastTest.ts +103 -0
  10. package/__tests__/engine/function/system/array/DeleteTest.ts +110 -0
  11. package/__tests__/engine/function/system/array/DisjointTest.ts +184 -0
  12. package/__tests__/engine/function/system/array/Equals.ts +67 -0
  13. package/__tests__/engine/function/system/array/FillTest.ts +36 -0
  14. package/__tests__/engine/function/system/array/FrequencyTest.ts +97 -0
  15. package/__tests__/engine/function/system/array/IndexOfArrayTest.ts +347 -0
  16. package/__tests__/engine/function/system/array/IndexOfTest.ts +267 -0
  17. package/__tests__/engine/function/system/array/InsertTest.ts +229 -0
  18. package/__tests__/engine/function/system/array/LastIndexOfArrayTest.ts +213 -0
  19. package/__tests__/engine/function/system/array/LastIndexOfTest.ts +253 -0
  20. package/__tests__/engine/function/system/array/MaxTest.ts +98 -0
  21. package/__tests__/engine/function/system/array/MinTest.ts +99 -0
  22. package/__tests__/engine/function/system/array/MisMatchTest.ts +215 -0
  23. package/__tests__/engine/function/system/array/ReverseTest.ts +235 -0
  24. package/__tests__/engine/function/system/array/RotateTest.ts +137 -0
  25. package/__tests__/engine/function/system/array/ShuffleTest.ts +154 -0
  26. package/__tests__/engine/function/system/array/SortTest.ts +130 -0
  27. package/__tests__/engine/function/system/array/SubArrayTest.ts +236 -0
  28. package/__tests__/engine/function/system/math/AddTest.ts +12 -0
  29. package/__tests__/engine/function/system/string/ConcatenateTest.ts +46 -0
  30. package/__tests__/engine/function/system/string/DeleteForGivenLengthTest.ts +38 -0
  31. package/__tests__/engine/function/system/string/InsertAtGivenPositionTest.ts +53 -0
  32. package/__tests__/engine/function/system/string/PostPadTest.ts +54 -0
  33. package/__tests__/engine/function/system/string/PrePadTest.ts +54 -0
  34. package/__tests__/engine/function/system/string/RegionMatchesTest.ts +78 -0
  35. package/__tests__/engine/function/system/string/ReverseTest.ts +36 -0
  36. package/__tests__/engine/function/system/string/SplitTest.ts +61 -0
  37. package/__tests__/engine/function/system/string/StringFunctionRepoTest2.ts +126 -0
  38. package/__tests__/engine/function/system/string/StringFunctionRepoTest3.ts +54 -0
  39. package/__tests__/engine/function/system/string/StringFunctionRepositoryTest.ts +146 -0
  40. package/__tests__/engine/function/system/string/ToStringTest.ts +43 -0
  41. package/__tests__/engine/function/system/string/TrimToTest.ts +28 -0
  42. package/__tests__/engine/json/schema/validator/SchemaValidatorTest.ts +26 -0
  43. package/__tests__/engine/runtime/KIRuntimeTest.ts +351 -0
  44. package/__tests__/engine/runtime/expression/ExpressionEvaluationTest.ts +128 -0
  45. package/__tests__/engine/runtime/expression/ExpressionTest.ts +33 -0
  46. package/__tests__/engine/runtime/expression/tokenextractor/OutputMapTokenValueExtractorTest.ts +44 -0
  47. package/__tests__/engine/runtime/expression/tokenextractor/TokenValueExtractorTest.ts +72 -0
  48. package/__tests__/engine/util/LinkedListTest.ts +29 -0
  49. package/__tests__/engine/util/string/StringFormatterTest.ts +17 -0
  50. package/__tests__/indexTest.ts +33 -0
  51. package/dist/index.js +2 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/module.js +2 -0
  54. package/dist/module.js.map +1 -0
  55. package/dist/types.d.ts +430 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/package.json +54 -0
  58. package/src/engine/HybridRepository.ts +18 -0
  59. package/src/engine/Repository.ts +3 -0
  60. package/src/engine/constant/KIRunConstants.ts +7 -0
  61. package/src/engine/exception/ExecutionException.ts +12 -0
  62. package/src/engine/exception/KIRuntimeException.ts +12 -0
  63. package/src/engine/function/AbstractFunction.ts +76 -0
  64. package/src/engine/function/Function.ts +13 -0
  65. package/src/engine/function/system/GenerateEvent.ts +76 -0
  66. package/src/engine/function/system/If.ts +40 -0
  67. package/src/engine/function/system/array/AbstractArrayFunction.ts +158 -0
  68. package/src/engine/function/system/array/Add.ts +31 -0
  69. package/src/engine/function/system/array/AddFirst.ts +44 -0
  70. package/src/engine/function/system/array/BinarySearch.ts +66 -0
  71. package/src/engine/function/system/array/Compare.ts +150 -0
  72. package/src/engine/function/system/array/Copy.ts +56 -0
  73. package/src/engine/function/system/array/Delete.ts +63 -0
  74. package/src/engine/function/system/array/DeleteFirst.ts +22 -0
  75. package/src/engine/function/system/array/DeleteFrom.ts +51 -0
  76. package/src/engine/function/system/array/DeleteLast.ts +23 -0
  77. package/src/engine/function/system/array/Disjoint.ts +85 -0
  78. package/src/engine/function/system/array/Equals.ts +36 -0
  79. package/src/engine/function/system/array/Fill.ts +51 -0
  80. package/src/engine/function/system/array/Frequency.ts +68 -0
  81. package/src/engine/function/system/array/IndexOf.ts +56 -0
  82. package/src/engine/function/system/array/IndexOfArray.ts +67 -0
  83. package/src/engine/function/system/array/Insert.ts +48 -0
  84. package/src/engine/function/system/array/LastIndexOf.ts +62 -0
  85. package/src/engine/function/system/array/LastIndexOfArray.ts +70 -0
  86. package/src/engine/function/system/array/Max.ts +31 -0
  87. package/src/engine/function/system/array/Min.ts +32 -0
  88. package/src/engine/function/system/array/MisMatch.ts +66 -0
  89. package/src/engine/function/system/array/Reverse.ts +50 -0
  90. package/src/engine/function/system/array/Rotate.ts +43 -0
  91. package/src/engine/function/system/array/Shuffle.ts +31 -0
  92. package/src/engine/function/system/array/Sort.ts +70 -0
  93. package/src/engine/function/system/array/SubArray.ts +48 -0
  94. package/src/engine/function/system/context/Create.ts +73 -0
  95. package/src/engine/function/system/context/Get.ts +55 -0
  96. package/src/engine/function/system/context/SetFunction.ts +244 -0
  97. package/src/engine/function/system/loop/CountLoop.ts +55 -0
  98. package/src/engine/function/system/loop/RangeLoop.ts +120 -0
  99. package/src/engine/function/system/math/Add.ts +34 -0
  100. package/src/engine/function/system/math/GenericMathFunction.ts +80 -0
  101. package/src/engine/function/system/math/Hypotenuse.ts +57 -0
  102. package/src/engine/function/system/math/MathFunctionRepository.ts +63 -0
  103. package/src/engine/function/system/math/Maximum.ts +38 -0
  104. package/src/engine/function/system/math/Minimum.ts +38 -0
  105. package/src/engine/function/system/math/Random.ts +27 -0
  106. package/src/engine/function/system/string/AbstractStringFunction.ts +409 -0
  107. package/src/engine/function/system/string/Concatenate.ts +57 -0
  108. package/src/engine/function/system/string/DeleteForGivenLength.ts +82 -0
  109. package/src/engine/function/system/string/InsertAtGivenPosition.ts +72 -0
  110. package/src/engine/function/system/string/PostPad.ts +83 -0
  111. package/src/engine/function/system/string/PrePad.ts +73 -0
  112. package/src/engine/function/system/string/RegionMatches.ts +119 -0
  113. package/src/engine/function/system/string/ReplaceAtGivenPosition.ts +101 -0
  114. package/src/engine/function/system/string/Reverse.ts +62 -0
  115. package/src/engine/function/system/string/Split.ts +53 -0
  116. package/src/engine/function/system/string/StringFunctionRepository.ts +60 -0
  117. package/src/engine/function/system/string/ToString.ts +45 -0
  118. package/src/engine/function/system/string/TrimTo.ts +55 -0
  119. package/src/engine/json/JsonExpression.ts +11 -0
  120. package/src/engine/json/schema/Schema.ts +670 -0
  121. package/src/engine/json/schema/SchemaUtil.ts +145 -0
  122. package/src/engine/json/schema/array/ArraySchemaType.ts +44 -0
  123. package/src/engine/json/schema/object/AdditionalPropertiesType.ts +32 -0
  124. package/src/engine/json/schema/string/StringFormat.ts +7 -0
  125. package/src/engine/json/schema/type/MultipleType.ts +28 -0
  126. package/src/engine/json/schema/type/SchemaType.ts +11 -0
  127. package/src/engine/json/schema/type/SingleType.ts +23 -0
  128. package/src/engine/json/schema/type/Type.ts +6 -0
  129. package/src/engine/json/schema/type/TypeUtil.ts +25 -0
  130. package/src/engine/json/schema/validator/AnyOfAllOfOneOfValidator.ts +108 -0
  131. package/src/engine/json/schema/validator/ArrayValidator.ts +145 -0
  132. package/src/engine/json/schema/validator/BooleanValidator.ts +24 -0
  133. package/src/engine/json/schema/validator/NullValidator.ts +17 -0
  134. package/src/engine/json/schema/validator/NumberValidator.ts +115 -0
  135. package/src/engine/json/schema/validator/ObjectValidator.ts +184 -0
  136. package/src/engine/json/schema/validator/SchemaValidator.ts +141 -0
  137. package/src/engine/json/schema/validator/StringValidator.ts +97 -0
  138. package/src/engine/json/schema/validator/TypeValidator.ts +49 -0
  139. package/src/engine/json/schema/validator/exception/SchemaReferenceException.ts +19 -0
  140. package/src/engine/json/schema/validator/exception/SchemaValidationException.ts +22 -0
  141. package/src/engine/model/AbstractStatement.ts +29 -0
  142. package/src/engine/model/Argument.ts +36 -0
  143. package/src/engine/model/Event.ts +62 -0
  144. package/src/engine/model/EventResult.ts +34 -0
  145. package/src/engine/model/FunctionDefinition.ts +69 -0
  146. package/src/engine/model/FunctionOutput.ts +37 -0
  147. package/src/engine/model/FunctionOutputGenerator.ts +5 -0
  148. package/src/engine/model/FunctionSignature.ts +67 -0
  149. package/src/engine/model/Parameter.ts +97 -0
  150. package/src/engine/model/ParameterReference.ts +57 -0
  151. package/src/engine/model/ParameterReferenceType.ts +4 -0
  152. package/src/engine/model/ParameterType.ts +4 -0
  153. package/src/engine/model/Position.ts +40 -0
  154. package/src/engine/model/Statement.ts +101 -0
  155. package/src/engine/model/StatementGroup.ts +37 -0
  156. package/src/engine/namespaces/Namespaces.ts +11 -0
  157. package/src/engine/repository/KIRunFunctionRepository.ts +37 -0
  158. package/src/engine/repository/KIRunSchemaRepository.ts +24 -0
  159. package/src/engine/runtime/ContextElement.ts +28 -0
  160. package/src/engine/runtime/FunctionExecutionParameters.ts +74 -0
  161. package/src/engine/runtime/KIRuntime.ts +653 -0
  162. package/src/engine/runtime/StatementExecution.ts +61 -0
  163. package/src/engine/runtime/StatementMessage.ts +30 -0
  164. package/src/engine/runtime/StatementMessageType.ts +5 -0
  165. package/src/engine/runtime/expression/Expression.ts +330 -0
  166. package/src/engine/runtime/expression/ExpressionEvaluator.ts +305 -0
  167. package/src/engine/runtime/expression/ExpressionToken.ts +15 -0
  168. package/src/engine/runtime/expression/ExpressionTokenValue.ts +23 -0
  169. package/src/engine/runtime/expression/Operation.ts +190 -0
  170. package/src/engine/runtime/expression/exception/ExpressionEvaluationException.ts +15 -0
  171. package/src/engine/runtime/expression/operators/binary/ArithmeticAdditionOperator.ts +9 -0
  172. package/src/engine/runtime/expression/operators/binary/ArithmeticDivisionOperator.ts +9 -0
  173. package/src/engine/runtime/expression/operators/binary/ArithmeticInetgerDivisionOperator.ts +9 -0
  174. package/src/engine/runtime/expression/operators/binary/ArithmeticModulusOperator.ts +9 -0
  175. package/src/engine/runtime/expression/operators/binary/ArithmeticMultiplicationOperator.ts +9 -0
  176. package/src/engine/runtime/expression/operators/binary/ArithmeticSubtractionOperator.ts +9 -0
  177. package/src/engine/runtime/expression/operators/binary/ArrayOperator.ts +31 -0
  178. package/src/engine/runtime/expression/operators/binary/BinaryOperator.ts +15 -0
  179. package/src/engine/runtime/expression/operators/binary/BitwiseAndOperator.ts +9 -0
  180. package/src/engine/runtime/expression/operators/binary/BitwiseLeftShiftOperator.ts +9 -0
  181. package/src/engine/runtime/expression/operators/binary/BitwiseOrOperator.ts +9 -0
  182. package/src/engine/runtime/expression/operators/binary/BitwiseRightShiftOperator.ts +9 -0
  183. package/src/engine/runtime/expression/operators/binary/BitwiseUnsignedRightShiftOperator.ts +9 -0
  184. package/src/engine/runtime/expression/operators/binary/BitwiseXorOperator.ts +9 -0
  185. package/src/engine/runtime/expression/operators/binary/LogicalAndOperator.ts +25 -0
  186. package/src/engine/runtime/expression/operators/binary/LogicalEqualOperator.ts +13 -0
  187. package/src/engine/runtime/expression/operators/binary/LogicalGreaterThanEqualOperator.ts +24 -0
  188. package/src/engine/runtime/expression/operators/binary/LogicalGreaterThanOperator.ts +24 -0
  189. package/src/engine/runtime/expression/operators/binary/LogicalLessThanEqualOperator.ts +24 -0
  190. package/src/engine/runtime/expression/operators/binary/LogicalLessThanOperator.ts +24 -0
  191. package/src/engine/runtime/expression/operators/binary/LogicalNotEqualOperator.ts +13 -0
  192. package/src/engine/runtime/expression/operators/binary/LogicalOrOperator.ts +25 -0
  193. package/src/engine/runtime/expression/operators/binary/ObjectOperator.ts +24 -0
  194. package/src/engine/runtime/expression/operators/unary/ArithmeticUnaryMinusOperator.ts +13 -0
  195. package/src/engine/runtime/expression/operators/unary/ArithmeticUnaryPlusOperator.ts +13 -0
  196. package/src/engine/runtime/expression/operators/unary/BitwiseComplementOperator.ts +22 -0
  197. package/src/engine/runtime/expression/operators/unary/LogicalNotOperator.ts +22 -0
  198. package/src/engine/runtime/expression/operators/unary/UnaryOperator.ts +15 -0
  199. package/src/engine/runtime/expression/tokenextractor/LiteralTokenValueExtractor.ts +64 -0
  200. package/src/engine/runtime/expression/tokenextractor/TokenValueExtractor.ts +136 -0
  201. package/src/engine/runtime/graph/ExecutionGraph.ts +81 -0
  202. package/src/engine/runtime/graph/GraphVertex.ts +118 -0
  203. package/src/engine/runtime/graph/GraphVertexType.ts +4 -0
  204. package/src/engine/runtime/tokenextractor/ArgumentsTokenValueExtractor.ts +22 -0
  205. package/src/engine/runtime/tokenextractor/ContextTokenValueExtractor.ts +37 -0
  206. package/src/engine/runtime/tokenextractor/OutputMapTokenValueExtractor.ts +32 -0
  207. package/src/engine/util/ArrayUtil.ts +23 -0
  208. package/src/engine/util/LinkedList.ts +229 -0
  209. package/src/engine/util/MapUtil.ts +86 -0
  210. package/src/engine/util/NullCheck.ts +3 -0
  211. package/src/engine/util/Tuples.ts +43 -0
  212. package/src/engine/util/primitive/PrimitiveUtil.ts +143 -0
  213. package/src/engine/util/string/StringBuilder.ts +59 -0
  214. package/src/engine/util/string/StringFormatter.ts +25 -0
  215. package/src/engine/util/string/StringUtil.ts +48 -0
  216. package/src/index.ts +13 -0
  217. package/tsconfig.json +6 -0
package/.prettierrc ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "singleQuote": true,
3
+ "trailingComma": "all",
4
+ "tabWidth": 4,
5
+ "useTabs": false,
6
+ "bracketSpacing": true,
7
+ "printWidth": 100,
8
+ "semi": true
9
+ }
@@ -0,0 +1,235 @@
1
+ import { AddFirst } from '../../../../../src/engine/function/system/array/AddFirst';
2
+
3
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
4
+
5
+ test('Add Test 1', () => {
6
+ let addFirst: AddFirst = new AddFirst();
7
+
8
+ let source: any[] = ['c', 'p', 3, 4, 5];
9
+
10
+ let temp: any = 'a';
11
+
12
+ let temp2: any[] = ['a', 'c', 'p', 3, 4, 5];
13
+
14
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
15
+ .setArguments(
16
+ new Map([
17
+ [AddFirst.PARAMETER_ARRAY_SOURCE.getParameterName(), source],
18
+ [AddFirst.PARAMETER_ANY_NOT_NULL.getParameterName(), temp],
19
+ ]),
20
+ )
21
+ .setSteps(new Map([]))
22
+ .setContext(new Map([]));
23
+
24
+ addFirst.execute(fep);
25
+
26
+ expect(source).toStrictEqual(temp2);
27
+ });
28
+
29
+ test('Add Test 2', () => {
30
+ let addFirst: AddFirst = new AddFirst();
31
+
32
+ let source: any[] = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'e', 'd'];
33
+
34
+ let temp: any = 'surendhar';
35
+
36
+ let temp2: any[] = ['surendhar', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'e', 'd'];
37
+
38
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
39
+ .setArguments(
40
+ new Map([
41
+ [AddFirst.PARAMETER_ARRAY_SOURCE.getParameterName(), source],
42
+ [AddFirst.PARAMETER_ANY_NOT_NULL.getParameterName(), temp],
43
+ ]),
44
+ )
45
+ .setSteps(new Map([]))
46
+ .setContext(new Map([]));
47
+
48
+ addFirst.execute(fep);
49
+
50
+ expect(source).toStrictEqual(temp2);
51
+ });
52
+
53
+ test('Add Test 3', () => {
54
+ let addFirst: AddFirst = new AddFirst();
55
+
56
+ let source: any[] = [
57
+ 'doing',
58
+ 'test',
59
+ 'Driven',
60
+ 'developement',
61
+ 'I',
62
+ 'am',
63
+ 'using',
64
+ 'eclipse',
65
+ 'I',
66
+ 'to',
67
+ ];
68
+
69
+ let temp: any = 'surendhar';
70
+
71
+ let temp2: any[] = [
72
+ 'surendhar',
73
+ 'doing',
74
+ 'test',
75
+ 'Driven',
76
+ 'developement',
77
+ 'I',
78
+ 'am',
79
+ 'using',
80
+ 'eclipse',
81
+ 'I',
82
+ 'to',
83
+ ];
84
+
85
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
86
+ .setArguments(
87
+ new Map([
88
+ [AddFirst.PARAMETER_ARRAY_SOURCE.getParameterName(), source],
89
+ [AddFirst.PARAMETER_ANY_NOT_NULL.getParameterName(), temp],
90
+ ]),
91
+ )
92
+ .setSteps(new Map([]))
93
+ .setContext(new Map([]));
94
+
95
+ addFirst.execute(fep);
96
+
97
+ expect(source).toStrictEqual(temp2);
98
+ });
99
+
100
+ test('Add Test 5', () => {
101
+ let addFirst: AddFirst = new AddFirst();
102
+
103
+ let source1: any[] = [
104
+ 'doing',
105
+ 'test',
106
+ 'Driven',
107
+ 'developement',
108
+ 'I',
109
+ 'am',
110
+ 'using',
111
+ 'eclipse',
112
+ 'I',
113
+ 'to',
114
+ ];
115
+
116
+ let source2: any[] = [
117
+ 'doing',
118
+ 'test',
119
+ 'Driven',
120
+ 'developement',
121
+ 'I',
122
+ 'am',
123
+ 'using',
124
+ 'eclipse',
125
+ 'I',
126
+ 'to',
127
+ 'with',
128
+ 'typescript',
129
+ ];
130
+
131
+ let source3: any[] = [
132
+ 'doing',
133
+ 'test',
134
+ 'Driven',
135
+ 'developement',
136
+ 'I',
137
+ 'am',
138
+ 'using',
139
+ 'eclipse',
140
+ 'I',
141
+ 'to',
142
+ 'with',
143
+ 'typescript',
144
+ 'newone',
145
+ 'framework',
146
+ ];
147
+
148
+ let source4: any[] = ['am', 'using', 'eclipse', 'I', 'to', 'with', 'typescript', 'newone'];
149
+
150
+ let source: any[] = [
151
+ source1,
152
+ source4,
153
+ source1,
154
+ source2,
155
+ source3,
156
+ source4,
157
+ source1,
158
+ source2,
159
+ source3,
160
+ ];
161
+
162
+ var obj = {
163
+ fname: 'surendhar',
164
+ lname: 's',
165
+ age: 23,
166
+ company: ' Fincity Corporation ',
167
+ };
168
+
169
+ let temp2: any[] = [
170
+ obj,
171
+ source1,
172
+ source4,
173
+ source1,
174
+ source2,
175
+ source3,
176
+ source4,
177
+ source1,
178
+ source2,
179
+ source3,
180
+ ];
181
+
182
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
183
+ .setArguments(
184
+ new Map<string, any>([
185
+ [AddFirst.PARAMETER_ARRAY_SOURCE.getParameterName(), source],
186
+ [AddFirst.PARAMETER_ANY_NOT_NULL.getParameterName(), obj],
187
+ ]),
188
+ )
189
+ .setSteps(new Map([]))
190
+ .setContext(new Map([]));
191
+
192
+ addFirst.execute(fep);
193
+
194
+ expect(source).toStrictEqual(temp2);
195
+ });
196
+
197
+ test('Add Test 4', () => {
198
+ let addFirst: AddFirst = new AddFirst();
199
+
200
+ let temp: any = 'a';
201
+
202
+ let temp2: any[] = ['a', 'c', 'p', 3, 4, 5];
203
+
204
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
205
+ .setArguments(
206
+ new Map([
207
+ [AddFirst.PARAMETER_ARRAY_SOURCE.getParameterName(), null],
208
+ [AddFirst.PARAMETER_ANY_NOT_NULL.getParameterName(), temp],
209
+ ]),
210
+ )
211
+ .setSteps(new Map([]))
212
+ .setContext(new Map([]));
213
+
214
+ expect(() => addFirst.execute(fep)).toThrow();
215
+ });
216
+
217
+ test('Add Test 5', () => {
218
+ let addFirst: AddFirst = new AddFirst();
219
+
220
+ let temp: any = null;
221
+
222
+ let temp2: any[] = ['a', 'c', 'p', 3, 4, 5];
223
+
224
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
225
+ .setArguments(
226
+ new Map([
227
+ [AddFirst.PARAMETER_ARRAY_SOURCE.getParameterName(), temp2],
228
+ [AddFirst.PARAMETER_ANY_NOT_NULL.getParameterName(), temp],
229
+ ]),
230
+ )
231
+ .setSteps(new Map([]))
232
+ .setContext(new Map([]));
233
+
234
+ expect(() => addFirst.execute(fep)).toThrow();
235
+ });
@@ -0,0 +1,126 @@
1
+ import { Add } from '../../../../../src/engine/function/system/array/Add';
2
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
3
+
4
+ test('Add Test 1', () => {
5
+ let add: Add = new Add();
6
+
7
+ let source: any[] = [2, 2, 3, 4, 5];
8
+
9
+ let secondSource: any[] = [2, 2, 2, 3, 4, 5];
10
+
11
+ let temp1: any[] = [2, 2, 3, 4, 5];
12
+
13
+ let temp2: any[] = [2, 2, 2, 3, 4, 5];
14
+
15
+ temp1.splice(temp1.length, 0, ...temp2);
16
+
17
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
18
+ .setArguments(
19
+ new Map([
20
+ [Add.PARAMETER_ARRAY_SOURCE.getParameterName(), source],
21
+ [Add.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), secondSource],
22
+ ]),
23
+ )
24
+ .setSteps(new Map([]))
25
+ .setContext(new Map([]));
26
+
27
+ add.execute(fep);
28
+
29
+ expect(source).toStrictEqual(temp1);
30
+ });
31
+
32
+ test('Add test 2', () => {
33
+ let add: Add = new Add();
34
+
35
+ let source: any[] = ['nocode', 'platform'];
36
+
37
+ let secondSource: any[] = [];
38
+
39
+ let temp1: any[] = ['nocode', 'platform'];
40
+
41
+ let temp2: any[] = [];
42
+
43
+ temp1.splice(temp1.length, 0, ...temp2);
44
+
45
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
46
+ .setArguments(
47
+ new Map([
48
+ [Add.PARAMETER_ARRAY_SOURCE.getParameterName(), source],
49
+ [Add.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), secondSource],
50
+ ]),
51
+ )
52
+ .setSteps(new Map([]))
53
+ .setContext(new Map([]));
54
+
55
+ add.execute(fep);
56
+
57
+ expect(source).toStrictEqual(temp1);
58
+ });
59
+
60
+ test('Add test 3', () => {
61
+ let add: Add = new Add();
62
+
63
+ let source: any[] = [];
64
+
65
+ let secondSource: any[] = [];
66
+
67
+ let temp1: any[] = [];
68
+
69
+ let temp2: any[] = [];
70
+
71
+ temp1.splice(temp1.length, 0, ...temp2);
72
+
73
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
74
+ .setArguments(
75
+ new Map([
76
+ [Add.PARAMETER_ARRAY_SOURCE.getParameterName(), source],
77
+ [Add.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), secondSource],
78
+ ]),
79
+ )
80
+ .setSteps(new Map([]))
81
+ .setContext(new Map([]));
82
+
83
+ add.execute(fep);
84
+
85
+ expect(source).toStrictEqual(temp1);
86
+ });
87
+
88
+ test('Add test 4', () => {
89
+ let add: Add = new Add();
90
+
91
+ let secondSource: any[] = [];
92
+
93
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
94
+ .setArguments(
95
+ new Map([
96
+ [Add.PARAMETER_ARRAY_SOURCE.getParameterName(), null],
97
+ [Add.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), secondSource],
98
+ ]),
99
+ )
100
+ .setSteps(new Map([]))
101
+ .setContext(new Map([]));
102
+
103
+ expect(() => add.execute(fep)).toThrow('');
104
+ });
105
+
106
+ test('Add test 5', () => {
107
+ let add: Add = new Add();
108
+
109
+ let secondSource: any[] = [];
110
+
111
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
112
+ .setArguments(
113
+ new Map([
114
+ [Add.PARAMETER_ARRAY_SOURCE.getParameterName(), secondSource],
115
+ [Add.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), undefined],
116
+ ]),
117
+ )
118
+ .setSteps(new Map([]))
119
+ .setContext(new Map([]));
120
+
121
+ expect(() => add.execute(fep)).toThrow(
122
+ 'Value undefined is not of valid type(s)\nExpected an array but found null',
123
+ );
124
+ // expect(() => add.execute(fep)).toThrowError(
125
+ // new SchemaValidationException(Schema.ofString("source"),'Value undefined is not of valid type(s)\nExpected an array but found null', );
126
+ });
@@ -0,0 +1,135 @@
1
+ import { BinarySearch } from '../../../../../src/engine/function/system/array/BinarySearch';
2
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
3
+
4
+ let bsearch: BinarySearch = new BinarySearch();
5
+
6
+ test('Binary Search test 1', () => {
7
+ let src: any[] = [1, 4, 6, 7, 10, 14, 16, 20];
8
+
9
+ let search: any = 16;
10
+
11
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
12
+ new Map<string, any>([
13
+ [BinarySearch.PARAMETER_ARRAY_SOURCE.getParameterName(), src],
14
+ [BinarySearch.PARAMETER_INT_SOURCE_FROM.getParameterName(), 1],
15
+ [BinarySearch.PARAMETER_ANY_NOT_NULL.getParameterName(), search],
16
+ [BinarySearch.PARAMETER_INT_LENGTH.getParameterName(), 6],
17
+ ]),
18
+ );
19
+
20
+ expect(
21
+ bsearch.execute(fep).allResults()[0].getResult().get(BinarySearch.EVENT_INDEX.getName()),
22
+ ).toBe(6);
23
+ });
24
+
25
+ test('Binary Search test 2', () => {
26
+ let src: any[] = [1, 4, 6, 7, 10, 14, 16, 20];
27
+
28
+ let search: any = 78;
29
+
30
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
31
+ new Map<string, any>([
32
+ [BinarySearch.PARAMETER_ARRAY_SOURCE.getParameterName(), src],
33
+ [BinarySearch.PARAMETER_INT_SOURCE_FROM.getParameterName(), 1],
34
+ [BinarySearch.PARAMETER_ANY_NOT_NULL.getParameterName(), search],
35
+ [BinarySearch.PARAMETER_INT_LENGTH.getParameterName(), src.length - 2],
36
+ ]),
37
+ );
38
+
39
+ expect(
40
+ bsearch.execute(fep).allResults()[0].getResult().get(BinarySearch.EVENT_INDEX.getName()),
41
+ ).toBe(-1);
42
+ });
43
+
44
+ test('Binary Search test 3', () => {
45
+ let src: any[] = [1, 4, 6, 7, 10, 14, 16, 20];
46
+
47
+ let search: any = 78;
48
+
49
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
50
+ new Map<string, any>([
51
+ [BinarySearch.PARAMETER_ARRAY_SOURCE.getParameterName(), src],
52
+ [BinarySearch.PARAMETER_INT_SOURCE_FROM.getParameterName(), 1],
53
+ [BinarySearch.PARAMETER_ANY_NOT_NULL.getParameterName(), search],
54
+ [BinarySearch.PARAMETER_INT_LENGTH.getParameterName(), 100],
55
+ ]),
56
+ );
57
+
58
+ expect(() => bsearch.execute(fep)).toThrow();
59
+ });
60
+
61
+ test('Binary Search test 6', () => {
62
+ let src: any[] = [1, 4, 6, 7, 10, [14, 16], 20];
63
+
64
+ let search: any[] = [14, 16];
65
+
66
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
67
+ new Map<string, any>([
68
+ [BinarySearch.PARAMETER_ARRAY_SOURCE.getParameterName(), src],
69
+ [BinarySearch.PARAMETER_INT_SOURCE_FROM.getParameterName(), 1],
70
+ [BinarySearch.PARAMETER_ANY_NOT_NULL.getParameterName(), search],
71
+ [BinarySearch.PARAMETER_INT_LENGTH.getParameterName(), 5],
72
+ ]),
73
+ );
74
+
75
+ expect(
76
+ bsearch.execute(fep).allResults()[0].getResult().get(BinarySearch.EVENT_INDEX.getName()),
77
+ ).toBe(5);
78
+ });
79
+
80
+ test('Binary Search test 7', () => {
81
+ let src: any[] = [1, 4, 6, 7, [10, 14], 16, 20];
82
+
83
+ let search: any[] = [10, 14, 16, 123, 123, 123, 45451, 12312, 123123];
84
+
85
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
86
+ new Map<string, any>([
87
+ [BinarySearch.PARAMETER_ARRAY_SOURCE.getParameterName(), src],
88
+ [BinarySearch.PARAMETER_INT_SOURCE_FROM.getParameterName(), 1],
89
+ [BinarySearch.PARAMETER_ANY_NOT_NULL.getParameterName(), search],
90
+ [BinarySearch.PARAMETER_INT_LENGTH.getParameterName(), 5],
91
+ ]),
92
+ );
93
+
94
+ expect(
95
+ bsearch.execute(fep).allResults()[0].getResult().get(BinarySearch.EVENT_INDEX.getName()),
96
+ ).toBe(-1);
97
+ });
98
+
99
+ test('Binary Search test 4', () => {
100
+ let src: any[] = ['a', 'b', 'd', 'f', 'h', ['k', 'z']];
101
+
102
+ let search: any = ['k', 'z'];
103
+
104
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
105
+ new Map<string, any>([
106
+ [BinarySearch.PARAMETER_ARRAY_SOURCE.getParameterName(), src],
107
+ [BinarySearch.PARAMETER_INT_SOURCE_FROM.getParameterName(), 2],
108
+ [BinarySearch.PARAMETER_ANY_NOT_NULL.getParameterName(), search],
109
+ [BinarySearch.PARAMETER_INT_LENGTH.getParameterName(), 4],
110
+ ]),
111
+ );
112
+
113
+ expect(
114
+ bsearch.execute(fep).allResults()[0].getResult().get(BinarySearch.EVENT_INDEX.getName()),
115
+ ).toBe(5);
116
+ });
117
+
118
+ test('Binary Search test 5', () => {
119
+ let src: any[] = [1, 4, [6], 7, [10], [14, 16], 20];
120
+
121
+ let search: any = [14, 16];
122
+
123
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
124
+ new Map<string, any>([
125
+ [BinarySearch.PARAMETER_ARRAY_SOURCE.getParameterName(), src],
126
+ [BinarySearch.PARAMETER_INT_SOURCE_FROM.getParameterName(), 1],
127
+ [BinarySearch.PARAMETER_ANY_NOT_NULL.getParameterName(), search],
128
+ [BinarySearch.PARAMETER_INT_LENGTH.getParameterName(), 6],
129
+ ]),
130
+ );
131
+
132
+ expect(
133
+ bsearch.execute(fep).allResults()[0].getResult().get(BinarySearch.EVENT_INDEX.getName()),
134
+ ).toBe(5);
135
+ });
@@ -0,0 +1,48 @@
1
+ import { AbstractArrayFunction } from '../../../../../src/engine/function/system/array/AbstractArrayFunction';
2
+ import { Compare } from '../../../../../src/engine/function/system/array/Compare';
3
+ import { FunctionOutput } from '../../../../../src/engine/model/FunctionOutput';
4
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
5
+ import { MapUtil } from '../../../../../src/engine/util/MapUtil';
6
+
7
+ test('Compare Test 1', () => {
8
+ let compare: Compare = new Compare();
9
+
10
+ let source: any[] = [2, 2, 3, 4, 5];
11
+
12
+ let find: any[] = [2, 2, 2, 3, 4, 5];
13
+
14
+ expect(compare.compare(source, 0, 2, find, 1, 3)).toBe(0);
15
+
16
+ find = [2, 2, 3, 4, 5];
17
+
18
+ expect(compare.compare(source, 0, source.length, find, 0, find.length)).toBe(0);
19
+
20
+ source = [true, true];
21
+
22
+ find = [true, null];
23
+
24
+ expect(compare.compare(source, 0, source.length, find, 0, find.length)).toBe(1);
25
+ });
26
+
27
+ test('Compare Test 2', () => {
28
+ let compare: Compare = new Compare();
29
+
30
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters();
31
+
32
+ let source: any[] = [4, 5];
33
+
34
+ let find: any[] = [4, 6];
35
+
36
+ fep.setArguments(
37
+ MapUtil.of(
38
+ AbstractArrayFunction.PARAMETER_ARRAY_SOURCE.getParameterName(),
39
+ source,
40
+ Compare.PARAMETER_ARRAY_FIND.getParameterName(),
41
+ find,
42
+ ),
43
+ );
44
+
45
+ let fo: FunctionOutput = compare.execute(fep);
46
+
47
+ expect(fo.allResults()[0].getResult().get(AbstractArrayFunction.EVENT_RESULT_NAME)).toBe(5 - 6);
48
+ });
@@ -0,0 +1,86 @@
1
+ import { AbstractArrayFunction } from '../../../../../src/engine/function/system/array/AbstractArrayFunction';
2
+ import { Copy } from '../../../../../src/engine/function/system/array/Copy';
3
+ import { FunctionOutput } from '../../../../../src/engine/model/FunctionOutput';
4
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
5
+
6
+ import { MapUtil } from '../../../../../src/engine/util/MapUtil';
7
+
8
+ test('Compy Test', () => {
9
+ let copy: Copy = new Copy();
10
+
11
+ let source: any[] = [1, 2, 3, 4, 5];
12
+
13
+ let fep1: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
14
+ MapUtil.of(
15
+ AbstractArrayFunction.PARAMETER_ARRAY_SOURCE.getParameterName(),
16
+ source as any,
17
+ AbstractArrayFunction.PARAMETER_INT_SOURCE_FROM.getParameterName(),
18
+ 2,
19
+ AbstractArrayFunction.PARAMETER_INT_LENGTH.getParameterName(),
20
+ 4,
21
+ ),
22
+ );
23
+
24
+ expect(() => copy.execute(fep1)).toThrow();
25
+
26
+ source.push(6);
27
+
28
+ let result: any[] = [3, 4, 5, 6];
29
+
30
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
31
+ MapUtil.of(
32
+ Copy.PARAMETER_ARRAY_SOURCE.getParameterName(),
33
+ source as any,
34
+ Copy.PARAMETER_INT_SOURCE_FROM.getParameterName(),
35
+ 2,
36
+ Copy.PARAMETER_INT_LENGTH.getParameterName(),
37
+ 4,
38
+ ),
39
+ );
40
+
41
+ let fo: FunctionOutput = copy.execute(fep);
42
+ expect(fo.allResults()[0].getResult().get(Copy.EVENT_RESULT_NAME)).toStrictEqual(result);
43
+
44
+ source = new Array();
45
+ source.push({ name: 'Kiran' });
46
+ source.push({ name: 'Kumar' });
47
+
48
+ fep = new FunctionExecutionParameters().setArguments(
49
+ MapUtil.of(
50
+ Copy.PARAMETER_ARRAY_SOURCE.getParameterName(),
51
+ source as any,
52
+ Copy.PARAMETER_INT_SOURCE_FROM.getParameterName(),
53
+ 2,
54
+ Copy.PARAMETER_INT_LENGTH.getParameterName(),
55
+ 4,
56
+ ),
57
+ );
58
+
59
+ result = new Array();
60
+ result.push({ name: 'Kiran' });
61
+ result.push({ name: 'Kumar' });
62
+
63
+ fep = new FunctionExecutionParameters().setArguments(
64
+ MapUtil.of(Copy.PARAMETER_ARRAY_SOURCE.getParameterName(), source),
65
+ );
66
+
67
+ fo = copy.execute(fep);
68
+
69
+ expect(fo.allResults()[0].getResult().get(Copy.EVENT_RESULT_NAME)).toStrictEqual(result);
70
+ expect(source[0] == result[0]).toBeFalsy();
71
+
72
+ fep = new FunctionExecutionParameters().setArguments(
73
+ MapUtil.of(
74
+ Copy.PARAMETER_ARRAY_SOURCE.getParameterName(),
75
+ source as any,
76
+ Copy.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName(),
77
+ false,
78
+ ),
79
+ );
80
+
81
+ fo = copy.execute(fep);
82
+
83
+ result = fo.allResults()[0].getResult().get(Copy.EVENT_RESULT_NAME);
84
+
85
+ expect(source[0] == result[0]).toBeTruthy();
86
+ });