@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
@@ -0,0 +1,229 @@
1
+ import { Insert } from '../../../../../src/engine/function/system/array/Insert';
2
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
3
+
4
+ test('Insert of Test 1', () => {
5
+ let ins: Insert = new Insert();
6
+
7
+ let array: any[] = [];
8
+
9
+ array.push('test');
10
+ array.push('Driven');
11
+ array.push('developement');
12
+ array.push('I');
13
+ array.push('am');
14
+ array.push('using');
15
+ array.push('eclipse');
16
+ array.push('I');
17
+ array.push('to');
18
+ array.push('test');
19
+ array.push('the');
20
+ array.push('changes');
21
+ array.push('with');
22
+ array.push('test');
23
+ array.push('Driven');
24
+ array.push('developement');
25
+
26
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
27
+ .setArguments(
28
+ new Map<string, any>([
29
+ [Insert.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
30
+ [Insert.PARAMETER_INT_OFFSET.getParameterName(), 4],
31
+ [Insert.PARAMETER_ANY.getParameterName(), ['this is an array']],
32
+ ]),
33
+ )
34
+ .setSteps(new Map([]))
35
+ .setContext(new Map([]));
36
+
37
+ let res: any[] = [];
38
+
39
+ res.push('test');
40
+ res.push('Driven');
41
+ res.push('developement');
42
+ res.push('I');
43
+ res.push(['this is an array']);
44
+ res.push('am');
45
+ res.push('using');
46
+ res.push('eclipse');
47
+ res.push('I');
48
+ res.push('to');
49
+ res.push('test');
50
+ res.push('the');
51
+ res.push('changes');
52
+ res.push('with');
53
+ res.push('test');
54
+ res.push('Driven');
55
+ res.push('developement');
56
+
57
+ ins.execute(fep);
58
+
59
+ expect(array).toStrictEqual(res);
60
+ });
61
+
62
+ test('Insert of Test 2', () => {
63
+ let ins: Insert = new Insert();
64
+
65
+ let arr: any[] = [];
66
+
67
+ arr.push(1);
68
+ arr.push(2);
69
+ arr.push(3);
70
+ arr.push(4);
71
+ arr.push(5);
72
+ arr.push(6);
73
+ arr.push(7);
74
+ arr.push(8);
75
+
76
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
77
+ .setArguments(
78
+ new Map<string, any>([
79
+ [Insert.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
80
+ [Insert.PARAMETER_INT_OFFSET.getParameterName(), 2],
81
+ [Insert.PARAMETER_ANY.getParameterName(), ['this is an array']],
82
+ ]),
83
+ )
84
+ .setSteps(new Map([]))
85
+ .setContext(new Map([]));
86
+
87
+ let res: any[] = [];
88
+
89
+ res.push(1);
90
+ res.push(2);
91
+ res.push(['this is an array']);
92
+ res.push(3);
93
+ res.push(4);
94
+ res.push(5);
95
+ res.push(6);
96
+ res.push(7);
97
+ res.push(8);
98
+ ins.execute(fep);
99
+
100
+ expect(arr).toStrictEqual(res);
101
+ });
102
+
103
+ test('Insert of Test 3', () => {
104
+ let ins: Insert = new Insert();
105
+
106
+ let arr: any[] = [];
107
+
108
+ arr.push(1);
109
+ arr.push(2);
110
+ arr.push(3);
111
+ arr.push(4);
112
+ arr.push(5);
113
+ arr.push(6);
114
+ arr.push(7);
115
+ arr.push(8);
116
+
117
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
118
+ .setArguments(
119
+ new Map<string, any>([
120
+ [Insert.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
121
+ [Insert.PARAMETER_INT_OFFSET.getParameterName(), 0],
122
+ [Insert.PARAMETER_ANY.getParameterName(), ['this is an array']],
123
+ ]),
124
+ )
125
+ .setSteps(new Map([]))
126
+ .setContext(new Map([]));
127
+
128
+ let res: any[] = [];
129
+
130
+ res.push(['this is an array']);
131
+ res.push(1);
132
+ res.push(2);
133
+ res.push(3);
134
+ res.push(4);
135
+ res.push(5);
136
+ res.push(6);
137
+ res.push(7);
138
+ res.push(8);
139
+ ins.execute(fep);
140
+
141
+ expect(arr).toStrictEqual(res);
142
+ });
143
+
144
+ test('Insert of Test 4', () => {
145
+ let ins: Insert = new Insert();
146
+
147
+ let arr: any[] = [];
148
+
149
+ arr.push(1);
150
+ arr.push(2);
151
+ arr.push(3);
152
+ arr.push(4);
153
+ arr.push(5);
154
+ arr.push(6);
155
+ arr.push(7);
156
+ arr.push(8);
157
+
158
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
159
+ .setArguments(
160
+ new Map<string, any>([
161
+ [Insert.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
162
+ [Insert.PARAMETER_INT_OFFSET.getParameterName(), arr.length],
163
+ [Insert.PARAMETER_ANY.getParameterName(), ['this is an array']],
164
+ ]),
165
+ )
166
+ .setSteps(new Map([]))
167
+ .setContext(new Map([]));
168
+
169
+ let res: any[] = [];
170
+
171
+ res.push(1);
172
+ res.push(2);
173
+ res.push(3);
174
+ res.push(4);
175
+ res.push(5);
176
+ res.push(6);
177
+ res.push(7);
178
+ res.push(8);
179
+ res.push(['this is an array']);
180
+
181
+ ins.execute(fep);
182
+
183
+ expect(arr).toStrictEqual(res);
184
+ });
185
+
186
+ test('Insert of Test 5', () => {
187
+ let ins: Insert = new Insert();
188
+
189
+ let arr: any[] = [];
190
+
191
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
192
+ .setArguments(
193
+ new Map<string, any>([
194
+ [Insert.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
195
+ [Insert.PARAMETER_ANY.getParameterName(), ['this is an array']],
196
+ ]),
197
+ )
198
+ .setSteps(new Map([]))
199
+ .setContext(new Map([]));
200
+
201
+ let res: any[] = [];
202
+
203
+ res.push(['this is an array']);
204
+
205
+ ins.execute(fep);
206
+
207
+ expect(arr).toStrictEqual(res);
208
+ });
209
+
210
+ test('Insert of Test 6', () => {
211
+ let ins: Insert = new Insert();
212
+
213
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters()
214
+ .setArguments(
215
+ new Map<string, any>([
216
+ [Insert.PARAMETER_ARRAY_SOURCE.getParameterName(), null],
217
+ [Insert.PARAMETER_INT_OFFSET.getParameterName(), 0],
218
+ [Insert.PARAMETER_ANY.getParameterName(), ['this is an array']],
219
+ ]),
220
+ )
221
+ .setSteps(new Map([]))
222
+ .setContext(new Map([]));
223
+
224
+ let res: any[] = [];
225
+
226
+ res.push(['this is an array']);
227
+
228
+ expect(() => ins.execute(fep)).toThrow();
229
+ });
@@ -0,0 +1,213 @@
1
+ import { LastIndexOfArray } from '../../../../../src/engine/function/system/array/LastIndexOfArray';
2
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
3
+
4
+ let larr: LastIndexOfArray = new LastIndexOfArray();
5
+
6
+ test('Last Index of array Test 1', () => {
7
+ let array: string[] = [];
8
+
9
+ array.push('a');
10
+ array.push('b');
11
+ array.push('c');
12
+ array.push('d');
13
+ array.push('a');
14
+ array.push('b');
15
+ array.push('c');
16
+ array.push('e');
17
+ array.push('d');
18
+ array.push('b');
19
+ array.push('c');
20
+ array.push('d');
21
+
22
+ let res: string[] = [];
23
+ res.push('b');
24
+ res.push('c');
25
+ res.push('d');
26
+
27
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
28
+ new Map<string, any>([
29
+ [LastIndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
30
+ [LastIndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
31
+ [LastIndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 1],
32
+ ]),
33
+ );
34
+ expect(
35
+ larr
36
+ .execute(fep)
37
+ .allResults()[0]
38
+ .getResult()
39
+ .get(LastIndexOfArray.EVENT_RESULT_INTEGER.getName()),
40
+ ).toBe(9);
41
+ });
42
+
43
+ test('last index of array test 2', () => {
44
+ let arr: any[] = [];
45
+ arr.push('b');
46
+ arr.push('c');
47
+ arr.push('d');
48
+ arr.push('a');
49
+ arr.push('b');
50
+ arr.push('c');
51
+ arr.push('e');
52
+ arr.push('d');
53
+ arr.push('b');
54
+ arr.push('c');
55
+ arr.push('d');
56
+
57
+ let res: any[] = [];
58
+ res.push('b');
59
+ res.push('d');
60
+
61
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
62
+ new Map<string, any>([
63
+ [LastIndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
64
+ [LastIndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
65
+ [LastIndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 1],
66
+ ]),
67
+ );
68
+
69
+ expect(
70
+ larr
71
+ .execute(fep)
72
+ .allResults()[0]
73
+ .getResult()
74
+ .get(LastIndexOfArray.EVENT_RESULT_INTEGER.getName()),
75
+ ).toBe(-1);
76
+ });
77
+
78
+ test('last index of array test 3', () => {
79
+ let arr: any[] = [];
80
+ arr.push('a');
81
+ arr.push('b');
82
+ arr.push('c');
83
+ arr.push('d');
84
+ arr.push('a');
85
+ arr.push('b');
86
+ arr.push('c');
87
+ arr.push('e');
88
+ arr.push('d');
89
+ arr.push('b');
90
+ arr.push('c');
91
+ arr.push('d');
92
+
93
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
94
+ new Map<string, any>([
95
+ [LastIndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
96
+ [LastIndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), undefined],
97
+ [LastIndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 1],
98
+ ]),
99
+ );
100
+
101
+ expect(() => larr.execute(fep)).toThrow();
102
+
103
+ let fep1: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
104
+ new Map<string, any>([
105
+ [LastIndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), null],
106
+ [LastIndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), undefined],
107
+ [LastIndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 1],
108
+ ]),
109
+ );
110
+
111
+ expect(() => larr.execute(fep1)).toThrow();
112
+ });
113
+
114
+ test('last index of array test 4', () => {
115
+ let array1: any[] = [];
116
+
117
+ array1.push('test');
118
+ array1.push('Driven');
119
+ array1.push('developement');
120
+ array1.push('I');
121
+ array1.push('am');
122
+ array1.push('using');
123
+ array1.push('eclipse');
124
+ array1.push('I');
125
+ array1.push('to');
126
+ array1.push('test');
127
+ array1.push('the');
128
+ array1.push('changes');
129
+ array1.push('with');
130
+ array1.push('test');
131
+ array1.push('Driven');
132
+ array1.push('developement');
133
+
134
+ var array2: any[] = [];
135
+
136
+ array2.push('test');
137
+ array2.push('Driven');
138
+ array2.push('developement');
139
+ array2.push('I');
140
+ array2.push('am');
141
+ array2.push('using');
142
+ array2.push('eclipse');
143
+ array2.push('I');
144
+ array2.push('to');
145
+ array2.push('test');
146
+ array2.push('the');
147
+ array2.push('changes');
148
+ array2.push('with');
149
+
150
+ var array3: any[] = [];
151
+
152
+ array3.push('test');
153
+ array3.push('Driven');
154
+ array3.push('developement');
155
+ array3.push('I');
156
+ array3.push('am');
157
+ array3.push('using');
158
+ array3.push('eclipse');
159
+ array3.push('I');
160
+ array3.push('to');
161
+ array3.push('test');
162
+ array3.push('the');
163
+ array3.push('changes');
164
+ array3.push('with');
165
+ array3.push('test');
166
+ array3.push('Driven');
167
+ array3.push('developement');
168
+
169
+ var array4: any[] = [];
170
+
171
+ array4.push('test');
172
+ array4.push('Driven');
173
+ array4.push('developement');
174
+ array4.push('I');
175
+ array4.push('am');
176
+ array4.push('using');
177
+ array4.push('eclipse');
178
+ array4.push('I');
179
+ array4.push('to');
180
+
181
+ var arr: any[] = [];
182
+ arr.push(array2);
183
+ arr.push(array1);
184
+ arr.push(array1);
185
+ arr.push(array4);
186
+ arr.push(array3);
187
+ arr.push(array2);
188
+ arr.push(array4);
189
+ arr.push(array1);
190
+ arr.push(array1);
191
+ arr.push(array4);
192
+
193
+ var res: any[] = [];
194
+ res.push(array1);
195
+ res.push(array1);
196
+ res.push(array4);
197
+
198
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
199
+ new Map<string, any>([
200
+ [LastIndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
201
+ [LastIndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
202
+ [LastIndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 2],
203
+ ]),
204
+ );
205
+
206
+ expect(
207
+ larr
208
+ .execute(fep)
209
+ .allResults()[0]
210
+ .getResult()
211
+ .get(LastIndexOfArray.EVENT_RESULT_INTEGER.getName()),
212
+ ).toBe(7);
213
+ });
@@ -0,0 +1,253 @@
1
+ import { LastIndexOf } from '../../../../../src/engine/function/system/array/LastIndexOf';
2
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
3
+
4
+ test('Last Index of Test 1', () => {
5
+ let lind: LastIndexOf = new LastIndexOf();
6
+
7
+ let array: string[] = [];
8
+
9
+ array.push('test');
10
+ array.push('Driven');
11
+ array.push('developement');
12
+ array.push('I');
13
+ array.push('am');
14
+ array.push('using');
15
+ array.push('eclipse');
16
+ array.push('I');
17
+ array.push('to');
18
+ array.push('test');
19
+ array.push('the');
20
+ array.push('changes');
21
+ array.push('with');
22
+ array.push('test');
23
+ array.push('Driven');
24
+ array.push('developement');
25
+
26
+ let find: string = 'test';
27
+
28
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
29
+ new Map<string, any>([
30
+ [LastIndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
31
+ [LastIndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
32
+ [LastIndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 2],
33
+ ]),
34
+ );
35
+ expect(
36
+ lind
37
+ .execute(fep)
38
+ .allResults()[0]
39
+ .getResult()
40
+ .get(LastIndexOf.EVENT_RESULT_INTEGER.getName()),
41
+ ).toBe(13);
42
+ });
43
+
44
+ test('Last Index of Test 2', () => {
45
+ let lind: LastIndexOf = new LastIndexOf();
46
+
47
+ let array: string[] = [];
48
+
49
+ array.push('test');
50
+ array.push('Driven');
51
+ array.push('developement');
52
+ array.push('I');
53
+ array.push('am');
54
+ array.push('using');
55
+ array.push('eclipse');
56
+ array.push('I');
57
+ array.push('to');
58
+ array.push('test');
59
+ array.push('the');
60
+ array.push('changes');
61
+ array.push('with');
62
+ array.push('test');
63
+ array.push('Driven');
64
+ array.push('developement');
65
+
66
+ let find;
67
+
68
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
69
+ new Map<string, any>([
70
+ [LastIndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
71
+ [LastIndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
72
+ [LastIndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 2],
73
+ ]),
74
+ );
75
+ expect(() => lind.execute(fep)).toThrow();
76
+ });
77
+
78
+ test('Last Index of Test 3', () => {
79
+ let lind: LastIndexOf = new LastIndexOf();
80
+
81
+ let array: string[] = [];
82
+
83
+ array.push('test');
84
+ array.push('Driven');
85
+ array.push('developement');
86
+ array.push('I');
87
+ array.push('am');
88
+ array.push('using');
89
+ array.push('eclipse');
90
+ array.push('I');
91
+ array.push('to');
92
+ array.push('test');
93
+ array.push('the');
94
+ array.push('changes');
95
+ array.push('with');
96
+ array.push('test');
97
+ array.push('Driven');
98
+ array.push('developement');
99
+
100
+ let find;
101
+
102
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
103
+ new Map<string, any>([
104
+ [LastIndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), null],
105
+ [LastIndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
106
+ [LastIndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 2],
107
+ ]),
108
+ );
109
+ expect(() => lind.execute(fep)).toThrow();
110
+ });
111
+
112
+ test('Last Index of Test 4', () => {
113
+ let lind: LastIndexOf = new LastIndexOf();
114
+
115
+ let array: string[] = [];
116
+
117
+ array.push('test');
118
+ array.push('Driven');
119
+ array.push('developement');
120
+ array.push('I');
121
+ array.push('am');
122
+ array.push('using');
123
+ array.push('eclipse');
124
+ array.push('I');
125
+ array.push('to');
126
+ array.push('test');
127
+ array.push('the');
128
+ array.push('changes');
129
+ array.push('with');
130
+ array.push('test');
131
+ array.push('Driven');
132
+ array.push('developement');
133
+
134
+ let find: string = 'developement';
135
+
136
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
137
+ new Map<string, any>([
138
+ [LastIndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
139
+ [LastIndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
140
+ [LastIndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 12],
141
+ ]),
142
+ );
143
+ expect(
144
+ lind
145
+ .execute(fep)
146
+ .allResults()[0]
147
+ .getResult()
148
+ .get(LastIndexOf.EVENT_RESULT_INTEGER.getName()),
149
+ ).toBe(15);
150
+
151
+ fep.setArguments(
152
+ new Map<string, any>([
153
+ [LastIndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
154
+ [LastIndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), 'newas'],
155
+ [LastIndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 12],
156
+ ]),
157
+ );
158
+ expect(
159
+ lind
160
+ .execute(fep)
161
+ .allResults()[0]
162
+ .getResult()
163
+ .get(LastIndexOf.EVENT_RESULT_INTEGER.getName()),
164
+ ).toBe(-1);
165
+ });
166
+
167
+ test('Last Index of Test 5', () => {
168
+ let lind: LastIndexOf = new LastIndexOf();
169
+
170
+ let array: string[] = [];
171
+
172
+ array.push('test');
173
+ array.push('Driven');
174
+ array.push('developement');
175
+ array.push('I');
176
+ array.push('am');
177
+ array.push('using');
178
+ array.push('eclipse');
179
+ array.push('I');
180
+ array.push('to');
181
+ array.push('test');
182
+ array.push('the');
183
+ array.push('changes');
184
+ array.push('with');
185
+ array.push('test');
186
+ array.push('Driven');
187
+ array.push('developement');
188
+
189
+ let find = 'changes';
190
+
191
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
192
+ new Map<string, any>([
193
+ [LastIndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
194
+ [LastIndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
195
+ [LastIndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), -2],
196
+ ]),
197
+ );
198
+ expect(() => lind.execute(fep)).toThrow();
199
+ });
200
+
201
+ test('Last Index of Test 6', () => {
202
+ let lind: LastIndexOf = new LastIndexOf();
203
+
204
+ let arr: any[] = [];
205
+
206
+ let array1: string[] = [];
207
+ array1.push('test');
208
+ array1.push('Driven');
209
+ array1.push('developement');
210
+ array1.push('I');
211
+ array1.push('am');
212
+
213
+ let js1: object = {
214
+ boolean: false,
215
+ array: array1,
216
+ char: 'o',
217
+ };
218
+
219
+ let js2: object = {
220
+ boolean: false,
221
+ array: array1,
222
+ char: 'asd',
223
+ };
224
+
225
+ let js3: object = {
226
+ array: array1,
227
+ };
228
+
229
+ let js4: object = {
230
+ boolean: false,
231
+ array: array1,
232
+ char: 'asdsd',
233
+ };
234
+
235
+ arr.push(js1);
236
+ arr.push(js2);
237
+ arr.push(js4);
238
+ arr.push(js3);
239
+ arr.push(js4);
240
+ arr.push(js1);
241
+ arr.push(js1);
242
+
243
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
244
+ new Map<string, any>([
245
+ [LastIndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
246
+ [LastIndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), js4],
247
+ [LastIndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 1],
248
+ ]),
249
+ );
250
+ expect(
251
+ lind.execute(fep).allResults()[0].getResult().get(LastIndexOf.EVENT_RESULT_EMPTY.getName()),
252
+ ).toBe(4);
253
+ });