@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,347 @@
1
+ import { IndexOfArray } from '../../../../../src/engine/function/system/array/IndexOfArray';
2
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
3
+
4
+ let ioa: IndexOfArray = new IndexOfArray();
5
+
6
+ test('index of array 1', () => {
7
+ let arr: any[] = [];
8
+ arr.push('a');
9
+ arr.push('b');
10
+ arr.push('c');
11
+ arr.push('d');
12
+ arr.push('a');
13
+ arr.push('b');
14
+ arr.push('c');
15
+ arr.push('e');
16
+ arr.push('d');
17
+
18
+ let res: any[] = [];
19
+ res.push('b');
20
+ res.push('c');
21
+ res.push('d');
22
+
23
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
24
+ new Map<string, any>([
25
+ [IndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
26
+ [IndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
27
+ [IndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 1],
28
+ ]),
29
+ );
30
+
31
+ expect(
32
+ ioa
33
+ .execute(fep)
34
+ .allResults()[0]
35
+ .getResult()
36
+ .get(IndexOfArray.EVENT_RESULT_INTEGER.getName()),
37
+ ).toBe(1);
38
+ });
39
+
40
+ test('Index of array 2', () => {
41
+ let arr: any[] = [];
42
+ arr.push('a');
43
+ arr.push('b');
44
+ arr.push('c');
45
+ arr.push('d');
46
+ arr.push('a');
47
+ arr.push('b');
48
+ arr.push('c');
49
+ arr.push('e');
50
+ arr.push('d');
51
+
52
+ let res: any[] = [];
53
+ res.push('b');
54
+ res.push('c');
55
+ res.push('e');
56
+ res.push('d');
57
+
58
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
59
+ new Map<string, any>([
60
+ [IndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
61
+ [IndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
62
+ [IndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 4],
63
+ ]),
64
+ );
65
+
66
+ expect(
67
+ ioa
68
+ .execute(fep)
69
+ .allResults()[0]
70
+ .getResult()
71
+ .get(IndexOfArray.EVENT_RESULT_INTEGER.getName()),
72
+ ).toBe(5);
73
+ });
74
+
75
+ test('index of array 3', () => {
76
+ let array1: any[] = [];
77
+ array1.push('test');
78
+ array1.push('Driven');
79
+ array1.push('developement');
80
+ array1.push('I');
81
+ array1.push('am');
82
+ array1.push('using');
83
+ array1.push('eclipse');
84
+ array1.push('I');
85
+ array1.push('to');
86
+ array1.push('test');
87
+ array1.push('the');
88
+ array1.push('changes');
89
+ array1.push('with');
90
+ array1.push('test');
91
+ array1.push('Driven');
92
+ array1.push('developement');
93
+
94
+ let array2: any[] = [];
95
+ array2.push('test');
96
+ array2.push('Driven');
97
+ array2.push('developement');
98
+ array2.push('I');
99
+ array2.push('am');
100
+ array2.push('using');
101
+ array2.push('eclipse');
102
+ array2.push('I');
103
+ array2.push('to');
104
+ array2.push('test');
105
+ array2.push('the');
106
+ array2.push('changes');
107
+ array2.push('with');
108
+
109
+ let array3: any[] = [];
110
+ array3.push('test');
111
+ array3.push('Driven');
112
+ array3.push('developement');
113
+ array3.push('I');
114
+ array3.push('am');
115
+ array3.push('using');
116
+ array3.push('eclipse');
117
+ array3.push('I');
118
+ array3.push('to');
119
+ array3.push('test');
120
+ array3.push('the');
121
+ array3.push('changes');
122
+ array3.push('with');
123
+ array3.push('test');
124
+ array3.push('Driven');
125
+ array3.push('developement');
126
+
127
+ let array4: any[] = [];
128
+ array4.push('test');
129
+ array4.push('Driven');
130
+ array4.push('developement');
131
+ array4.push('I');
132
+ array4.push('am');
133
+ array4.push('using');
134
+ array4.push('eclipse');
135
+ array4.push('I');
136
+ array4.push('to');
137
+
138
+ let arr: any[] = [];
139
+ arr.push(array2);
140
+ arr.push(array4);
141
+ arr.push(array1);
142
+ arr.push(array1);
143
+ arr.push(array3);
144
+ arr.push(array2);
145
+ arr.push(array4);
146
+ arr.push(array1);
147
+ arr.push(array1);
148
+ arr.push(array4);
149
+
150
+ let res: any[] = [];
151
+ res.push(array1);
152
+ res.push(array1);
153
+ res.push(array4);
154
+
155
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
156
+ new Map<string, any>([
157
+ [IndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
158
+ [IndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
159
+ [IndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 2],
160
+ ]),
161
+ );
162
+
163
+ expect(
164
+ ioa
165
+ .execute(fep)
166
+ .allResults()[0]
167
+ .getResult()
168
+ .get(IndexOfArray.EVENT_RESULT_INTEGER.getName()),
169
+ ).toBe(7);
170
+ });
171
+
172
+ test('index of array test 4', () => {
173
+ let arr: any[] = [];
174
+ arr.push('a');
175
+ arr.push('b');
176
+ arr.push('c');
177
+ arr.push('d');
178
+ arr.push('a');
179
+ arr.push('b');
180
+ arr.push('c');
181
+ arr.push('e');
182
+ arr.push('d');
183
+
184
+ let res: any[] = [];
185
+ res.push('b');
186
+ res.push('e');
187
+ res.push('d');
188
+
189
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
190
+ new Map<string, any>([
191
+ [IndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
192
+ [IndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
193
+ [IndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), 4],
194
+ ]),
195
+ );
196
+
197
+ expect(
198
+ ioa
199
+ .execute(fep)
200
+ .allResults()[0]
201
+ .getResult()
202
+ .get(IndexOfArray.EVENT_RESULT_INTEGER.getName()),
203
+ ).toBe(-1);
204
+ });
205
+
206
+ test('index of array 5', () => {
207
+ let arr: any[] = [];
208
+ arr.push('a');
209
+ arr.push('b');
210
+ arr.push('c');
211
+ arr.push('d');
212
+ arr.push('a');
213
+ arr.push('b');
214
+ arr.push('c');
215
+ arr.push('e');
216
+ arr.push('d');
217
+
218
+ let as: any[] = [];
219
+ as.push('c');
220
+ as.push('e');
221
+
222
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
223
+ new Map<string, any>([
224
+ [IndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
225
+ [IndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), as],
226
+ ]),
227
+ );
228
+ expect(
229
+ ioa
230
+ .execute(fep)
231
+ .allResults()[0]
232
+ .getResult()
233
+ .get(IndexOfArray.EVENT_RESULT_INTEGER.getName()),
234
+ ).toBe(6);
235
+ });
236
+
237
+ test('index of array 6', () => {
238
+ let arr: any[] = [];
239
+ arr.push('a');
240
+ arr.push('b');
241
+ arr.push('c');
242
+
243
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
244
+ new Map<string, any>([
245
+ [IndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
246
+ [IndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), undefined],
247
+ ]),
248
+ );
249
+ expect(() => ioa.execute(fep)).toThrow();
250
+ });
251
+
252
+ test('index of array 3', () => {
253
+ let array1: any[] = [];
254
+ array1.push('test');
255
+ array1.push('Driven');
256
+ array1.push('developement');
257
+ array1.push('I');
258
+ array1.push('am');
259
+ array1.push('using');
260
+ array1.push('eclipse');
261
+ array1.push('I');
262
+ array1.push('to');
263
+ array1.push('test');
264
+ array1.push('the');
265
+ array1.push('changes');
266
+ array1.push('with');
267
+ array1.push('test');
268
+ array1.push('Driven');
269
+ array1.push('developement');
270
+
271
+ let array2: any[] = [];
272
+ array2.push('test');
273
+ array2.push('Driven');
274
+ array2.push('developement');
275
+ array2.push('I');
276
+ array2.push('am');
277
+ array2.push('using');
278
+ array2.push('eclipse');
279
+ array2.push('I');
280
+ array2.push('to');
281
+ array2.push('test');
282
+ array2.push('the');
283
+ array2.push('changes');
284
+ array2.push('with');
285
+
286
+ let array3: any[] = [];
287
+ array3.push('test');
288
+ array3.push('Driven');
289
+ array3.push('developement');
290
+ array3.push('I');
291
+ array3.push('am');
292
+ array3.push('using');
293
+ array3.push('eclipse');
294
+ array3.push('I');
295
+ array3.push('to');
296
+ array3.push('test');
297
+ array3.push('the');
298
+ array3.push('changes');
299
+ array3.push('with');
300
+ array3.push('test');
301
+ array3.push('Driven');
302
+ array3.push('developement');
303
+
304
+ let array4: any[] = [];
305
+ array4.push('test');
306
+ array4.push('Driven');
307
+ array4.push('developement');
308
+ array4.push('I');
309
+ array4.push('am');
310
+ array4.push('using');
311
+ array4.push('eclipse');
312
+ array4.push('I');
313
+ array4.push('to');
314
+
315
+ let arr: any[] = [];
316
+ arr.push(array2);
317
+ arr.push(array4);
318
+ arr.push(array1);
319
+ arr.push(array1);
320
+ arr.push(array3);
321
+ arr.push(array2);
322
+ arr.push(array4);
323
+ arr.push(array1);
324
+ arr.push(array1);
325
+ arr.push(array4);
326
+
327
+ let res: any[] = [];
328
+ res.push(array1);
329
+ res.push(array1);
330
+ res.push(array4);
331
+
332
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
333
+ new Map<string, any>([
334
+ [IndexOfArray.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
335
+ [IndexOfArray.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName(), res],
336
+ [IndexOfArray.PARAMETER_INT_FIND_FROM.getParameterName(), arr.length],
337
+ ]),
338
+ );
339
+
340
+ expect(
341
+ ioa
342
+ .execute(fep)
343
+ .allResults()[0]
344
+ .getResult()
345
+ .get(IndexOfArray.EVENT_RESULT_INTEGER.getName()),
346
+ ).toBe(-1);
347
+ });
@@ -0,0 +1,267 @@
1
+ import { IndexOf } from '../../../../../src/engine/function/system/array/IndexOf';
2
+ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/FunctionExecutionParameters';
3
+
4
+ test('Index of Test 1', () => {
5
+ let ind: IndexOf = new IndexOf();
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 = 'with';
27
+
28
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
29
+ new Map<string, any>([
30
+ [IndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
31
+ [IndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
32
+ [IndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 2],
33
+ ]),
34
+ );
35
+ expect(
36
+ ind.execute(fep).allResults()[0].getResult().get(IndexOf.EVENT_RESULT_INTEGER.getName()),
37
+ ).toBe(12);
38
+ });
39
+
40
+ test('Index of Test 2', () => {
41
+ let ind: IndexOf = new IndexOf();
42
+
43
+ let array: string[] = [];
44
+
45
+ array.push('test');
46
+ array.push('Driven');
47
+ array.push('developement');
48
+ array.push('I');
49
+ array.push('am');
50
+ array.push('using');
51
+ array.push('eclipse');
52
+ array.push('I');
53
+ array.push('to');
54
+ array.push('test');
55
+ array.push('the');
56
+ array.push('changes');
57
+ array.push('with');
58
+ array.push('test');
59
+ array.push('Driven');
60
+ array.push('developement');
61
+
62
+ let find: string = 'with';
63
+
64
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
65
+ new Map<string, any>([
66
+ [IndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
67
+ [IndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
68
+ [IndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), -2],
69
+ ]),
70
+ );
71
+
72
+ expect(() => ind.execute(fep)).toThrow();
73
+
74
+ fep.setArguments(
75
+ new Map<string, any>([
76
+ [IndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), []],
77
+ [IndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
78
+ [IndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), -2],
79
+ ]),
80
+ );
81
+ expect(ind.execute(fep).allResults()[0].getResult().get(IndexOf.EVENT_INDEX.getName())).toBe(
82
+ -1,
83
+ );
84
+ });
85
+
86
+ test('Index of Test 3', () => {
87
+ let ind: IndexOf = new IndexOf();
88
+
89
+ let array: string[] = [];
90
+
91
+ array.push('test');
92
+ array.push('Driven');
93
+ array.push('developement');
94
+ array.push('I');
95
+ array.push('am');
96
+ array.push('using');
97
+ array.push('eclipse');
98
+ array.push('I');
99
+ array.push('to');
100
+ array.push('test');
101
+ array.push('the');
102
+ array.push('changes');
103
+ array.push('with');
104
+ array.push('test');
105
+ array.push('Driven');
106
+ array.push('developement');
107
+
108
+ let find: string = 'witah';
109
+
110
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
111
+ new Map<string, any>([
112
+ [IndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), array],
113
+ [IndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
114
+ [IndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 0],
115
+ ]),
116
+ );
117
+
118
+ expect(
119
+ ind.execute(fep).allResults()[0].getResult().get(IndexOf.EVENT_RESULT_INTEGER.getName()),
120
+ ).toBe(-1);
121
+ });
122
+
123
+ test('Index of Test 4', () => {
124
+ let ind: IndexOf = new IndexOf();
125
+
126
+ let array: string[] = [];
127
+
128
+ array.push('test');
129
+ array.push('Driven');
130
+ array.push('developement');
131
+ array.push('I');
132
+ array.push('am');
133
+ array.push('using');
134
+ array.push('eclipse');
135
+ array.push('I');
136
+ array.push('to');
137
+ array.push('test');
138
+ array.push('the');
139
+ array.push('changes');
140
+ array.push('with');
141
+ array.push('test');
142
+ array.push('Driven');
143
+ array.push('developement');
144
+
145
+ let array2: string[] = [];
146
+
147
+ array2.push('test');
148
+ array2.push('Driven');
149
+ array2.push('developement');
150
+ array2.push('I');
151
+ array2.push('am');
152
+ array2.push('using');
153
+ array2.push('eclipse');
154
+ array2.push('I');
155
+ array2.push('to');
156
+ array2.push('test');
157
+ array2.push('the');
158
+ array2.push('changes');
159
+ array2.push('with');
160
+
161
+ let array3: string[] = [];
162
+ array3.push('test');
163
+ array3.push('Driven');
164
+ array3.push('developement');
165
+ array3.push('I');
166
+ array3.push('am');
167
+ array3.push('using');
168
+ array3.push('eclipse');
169
+ array3.push('I');
170
+ array3.push('to');
171
+ array3.push('test');
172
+ array3.push('the');
173
+ array3.push('changes');
174
+ array3.push('with');
175
+ array3.push('test');
176
+ array3.push('Driven');
177
+ array3.push('developement');
178
+
179
+ let array4: string[] = [];
180
+ array4.push('test');
181
+ array4.push('Driven');
182
+ array4.push('developement');
183
+ array4.push('I');
184
+ array4.push('am');
185
+ array4.push('using');
186
+ array4.push('eclipse');
187
+ array4.push('I');
188
+ array4.push('to');
189
+
190
+ let arr: any[] = [];
191
+ arr.push(array3);
192
+ arr.push(array);
193
+ arr.push(array3);
194
+ arr.push(array2);
195
+ arr.push(array4);
196
+ arr.push(array);
197
+
198
+ let find: any = array;
199
+
200
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
201
+ new Map<string, any>([
202
+ [IndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
203
+ [IndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
204
+ [IndexOf.PARAMETER_INT_FIND_FROM.getParameterName(), 2],
205
+ ]),
206
+ );
207
+
208
+ expect(
209
+ ind.execute(fep).allResults()[0].getResult().get(IndexOf.EVENT_RESULT_INTEGER.getName()),
210
+ ).toBe(2);
211
+ });
212
+
213
+ test('indexof test 5', () => {
214
+ let ind: IndexOf = new IndexOf();
215
+
216
+ let array1: string[] = [];
217
+
218
+ array1.push('test');
219
+ array1.push('Driven');
220
+ array1.push('developement');
221
+ array1.push('I');
222
+ array1.push('am');
223
+
224
+ let js1: object = {
225
+ boolean: false,
226
+ array: array1,
227
+ char: 'o',
228
+ };
229
+
230
+ let js2: object = {
231
+ boolean: false,
232
+ array: array1,
233
+ char: 'asd',
234
+ };
235
+
236
+ let js3: object = {
237
+ array: array1,
238
+ };
239
+
240
+ let js4: object = {
241
+ boolean: false,
242
+ array: array1,
243
+ char: 'o',
244
+ };
245
+
246
+ let arr: any[] = [js1, js2, js1, js3, js3, js4, js1];
247
+ let find: any = js4;
248
+
249
+ let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
250
+ new Map<string, any>([
251
+ [IndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
252
+ [IndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), find],
253
+ ]),
254
+ );
255
+
256
+ expect(
257
+ ind.execute(fep).allResults()[0].getResult().get(IndexOf.EVENT_RESULT_INTEGER.getName()),
258
+ ).toBe(5);
259
+
260
+ fep.setArguments(
261
+ new Map<string, any>([
262
+ [IndexOf.PARAMETER_ARRAY_SOURCE.getParameterName(), arr],
263
+ [IndexOf.PARAMETER_ANY_NOT_NULL.getParameterName(), null],
264
+ ]),
265
+ );
266
+ expect(() => ind.execute(fep)).toThrow();
267
+ });