@fincity/kirun-js 1.0.3 → 1.1.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 (107) hide show
  1. package/__tests__/engine/function/system/array/AddFirstTest.ts +13 -12
  2. package/__tests__/engine/function/system/array/AddTest.ts +11 -11
  3. package/__tests__/engine/function/system/array/BinarySearchTest.ts +29 -14
  4. package/__tests__/engine/function/system/array/CompareTest.ts +3 -3
  5. package/__tests__/engine/function/system/array/CopyTest.ts +5 -5
  6. package/__tests__/engine/function/system/array/DeleteFirstTest.ts +10 -10
  7. package/__tests__/engine/function/system/array/DeleteFromTest.ts +8 -8
  8. package/__tests__/engine/function/system/array/DeleteLastTest.ts +10 -10
  9. package/__tests__/engine/function/system/array/DeleteTest.ts +10 -10
  10. package/__tests__/engine/function/system/array/DisjointTest.ts +6 -7
  11. package/__tests__/engine/function/system/array/Equals.ts +5 -5
  12. package/__tests__/engine/function/system/array/FillTest.ts +5 -5
  13. package/__tests__/engine/function/system/array/FrequencyTest.ts +11 -11
  14. package/__tests__/engine/function/system/array/IndexOfArrayTest.ts +14 -20
  15. package/__tests__/engine/function/system/array/IndexOfTest.ts +26 -14
  16. package/__tests__/engine/function/system/array/InsertTest.ts +12 -12
  17. package/__tests__/engine/function/system/array/LastIndexOfArrayTest.ts +9 -12
  18. package/__tests__/engine/function/system/array/LastIndexOfTest.ts +16 -16
  19. package/__tests__/engine/function/system/array/MaxTest.ts +18 -18
  20. package/__tests__/engine/function/system/array/MinTest.ts +18 -18
  21. package/__tests__/engine/function/system/array/MisMatchTest.ts +8 -11
  22. package/__tests__/engine/function/system/array/ReverseTest.ts +12 -12
  23. package/__tests__/engine/function/system/array/RotateTest.ts +6 -6
  24. package/__tests__/engine/function/system/array/ShuffleTest.ts +7 -4
  25. package/__tests__/engine/function/system/array/SortTest.ts +10 -10
  26. package/__tests__/engine/function/system/array/SubArrayTest.ts +19 -10
  27. package/__tests__/engine/function/system/context/SetFunctionTest.ts +24 -5
  28. package/__tests__/engine/function/system/math/AddTest.ts +2 -2
  29. package/__tests__/engine/function/system/string/ConcatenateTest.ts +4 -4
  30. package/__tests__/engine/function/system/string/DeleteForGivenLengthTest.ts +8 -4
  31. package/__tests__/engine/function/system/string/InsertAtGivenPositionTest.ts +6 -6
  32. package/__tests__/engine/function/system/string/PostPadTest.ts +6 -6
  33. package/__tests__/engine/function/system/string/PrePadTest.ts +8 -8
  34. package/__tests__/engine/function/system/string/RegionMatchesTest.ts +15 -6
  35. package/__tests__/engine/function/system/string/ReverseTest.ts +6 -6
  36. package/__tests__/engine/function/system/string/SplitTest.ts +8 -4
  37. package/__tests__/engine/function/system/string/StringFunctionRepoTest2.ts +35 -11
  38. package/__tests__/engine/function/system/string/StringFunctionRepoTest3.ts +14 -5
  39. package/__tests__/engine/function/system/string/StringFunctionRepositoryTest.ts +40 -16
  40. package/__tests__/engine/function/system/string/ToStringTest.ts +6 -6
  41. package/__tests__/engine/function/system/string/TrimToTest.ts +8 -6
  42. package/__tests__/engine/runtime/KIRuntimeTest.ts +148 -155
  43. package/__tests__/engine/util/LinkedListTest.ts +9 -0
  44. package/dist/index.js +1 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/module.js +1 -1
  47. package/dist/module.js.map +1 -1
  48. package/dist/types.d.ts +344 -109
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +7 -5
  51. package/src/engine/function/AbstractFunction.ts +5 -3
  52. package/src/engine/function/Function.ts +1 -1
  53. package/src/engine/function/system/GenerateEvent.ts +1 -1
  54. package/src/engine/function/system/If.ts +1 -1
  55. package/src/engine/function/system/array/Add.ts +1 -1
  56. package/src/engine/function/system/array/AddFirst.ts +1 -1
  57. package/src/engine/function/system/array/BinarySearch.ts +1 -1
  58. package/src/engine/function/system/array/Compare.ts +1 -1
  59. package/src/engine/function/system/array/Copy.ts +1 -1
  60. package/src/engine/function/system/array/Delete.ts +1 -1
  61. package/src/engine/function/system/array/DeleteFirst.ts +1 -1
  62. package/src/engine/function/system/array/DeleteFrom.ts +1 -1
  63. package/src/engine/function/system/array/DeleteLast.ts +1 -1
  64. package/src/engine/function/system/array/Disjoint.ts +1 -1
  65. package/src/engine/function/system/array/Equals.ts +2 -2
  66. package/src/engine/function/system/array/Fill.ts +1 -1
  67. package/src/engine/function/system/array/Frequency.ts +1 -1
  68. package/src/engine/function/system/array/IndexOf.ts +1 -1
  69. package/src/engine/function/system/array/IndexOfArray.ts +1 -1
  70. package/src/engine/function/system/array/Insert.ts +1 -1
  71. package/src/engine/function/system/array/LastIndexOf.ts +1 -1
  72. package/src/engine/function/system/array/LastIndexOfArray.ts +1 -1
  73. package/src/engine/function/system/array/Max.ts +1 -1
  74. package/src/engine/function/system/array/Min.ts +1 -1
  75. package/src/engine/function/system/array/MisMatch.ts +1 -1
  76. package/src/engine/function/system/array/Reverse.ts +1 -1
  77. package/src/engine/function/system/array/Rotate.ts +1 -1
  78. package/src/engine/function/system/array/Shuffle.ts +1 -1
  79. package/src/engine/function/system/array/Sort.ts +1 -1
  80. package/src/engine/function/system/array/SubArray.ts +1 -1
  81. package/src/engine/function/system/context/Create.ts +1 -1
  82. package/src/engine/function/system/context/Get.ts +1 -1
  83. package/src/engine/function/system/context/SetFunction.ts +1 -1
  84. package/src/engine/function/system/loop/CountLoop.ts +1 -1
  85. package/src/engine/function/system/loop/RangeLoop.ts +1 -1
  86. package/src/engine/function/system/math/Add.ts +2 -4
  87. package/src/engine/function/system/math/GenericMathFunction.ts +2 -4
  88. package/src/engine/function/system/math/Hypotenuse.ts +2 -6
  89. package/src/engine/function/system/math/Maximum.ts +2 -4
  90. package/src/engine/function/system/math/Minimum.ts +2 -4
  91. package/src/engine/function/system/math/Random.ts +1 -1
  92. package/src/engine/function/system/string/AbstractStringFunction.ts +24 -8
  93. package/src/engine/function/system/string/Concatenate.ts +2 -2
  94. package/src/engine/function/system/string/DeleteForGivenLength.ts +25 -15
  95. package/src/engine/function/system/string/InsertAtGivenPosition.ts +17 -7
  96. package/src/engine/function/system/string/PostPad.ts +20 -10
  97. package/src/engine/function/system/string/PrePad.ts +17 -7
  98. package/src/engine/function/system/string/RegionMatches.ts +40 -22
  99. package/src/engine/function/system/string/ReplaceAtGivenPosition.ts +26 -13
  100. package/src/engine/function/system/string/Reverse.ts +4 -3
  101. package/src/engine/function/system/string/Split.ts +13 -4
  102. package/src/engine/function/system/string/ToString.ts +9 -5
  103. package/src/engine/function/system/string/TrimTo.ts +13 -6
  104. package/src/engine/runtime/KIRuntime.ts +26 -24
  105. package/src/engine/runtime/expression/operators/binary/index.ts +23 -0
  106. package/src/engine/runtime/expression/operators/unary/index.ts +5 -0
  107. package/src/index.ts +100 -18
@@ -3,7 +3,7 @@ import { FunctionExecutionParameters } from '../../../../../src/engine/runtime/F
3
3
 
4
4
  const trim: TrimTo = new TrimTo();
5
5
 
6
- test('Trim to test1 ', () => {
6
+ test('Trim to test1 ', async () => {
7
7
  let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
8
8
  new Map<string, string | number>([
9
9
  [TrimTo.PARAMETER_STRING_NAME, ' THIScompatY IS A NOcoDE plATFNORM'],
@@ -11,12 +11,12 @@ test('Trim to test1 ', () => {
11
11
  ]),
12
12
  );
13
13
 
14
- expect(trim.execute(fep).allResults()[0].getResult().get(TrimTo.EVENT_RESULT_NAME)).toBe(
15
- ' THIScompatY I',
16
- );
14
+ expect(
15
+ (await trim.execute(fep)).allResults()[0].getResult().get(TrimTo.EVENT_RESULT_NAME),
16
+ ).toBe(' THIScompatY I');
17
17
  });
18
18
 
19
- test('Trim to test2 ', () => {
19
+ test('Trim to test2 ', async () => {
20
20
  let fep: FunctionExecutionParameters = new FunctionExecutionParameters().setArguments(
21
21
  new Map<string, string | number>([
22
22
  [TrimTo.PARAMETER_STRING_NAME, ' THIScompatY IS A NOcoDE plATFNORM'],
@@ -24,5 +24,7 @@ test('Trim to test2 ', () => {
24
24
  ]),
25
25
  );
26
26
 
27
- expect(trim.execute(fep).allResults()[0].getResult().get(TrimTo.EVENT_RESULT_NAME)).toBe('');
27
+ expect(
28
+ (await trim.execute(fep)).allResults()[0].getResult().get(TrimTo.EVENT_RESULT_NAME),
29
+ ).toBe('');
28
30
  });
@@ -21,7 +21,7 @@ import { FunctionOutput } from '../../../src/engine/model/FunctionOutput';
21
21
  import { HybridRepository } from '../../../src/engine/HybridRepository';
22
22
  import { Function } from '../../../src/engine/function/Function';
23
23
 
24
- test('KIRuntime Test 1', () => {
24
+ test('KIRuntime Test 1', async () => {
25
25
  let start = new Date().getTime();
26
26
  let num: number = 7000;
27
27
  let array: number[] = [];
@@ -44,16 +44,19 @@ test('KIRuntime Test 1', () => {
44
44
  defaultValue: new Array(),
45
45
  items: integerSchema,
46
46
  };
47
- var createArray =new Statement('createArray', create.getNamespace(), create.getName())
48
- .setParameterMap(
49
- new Map([
50
- ['name', [ParameterReference.ofValue('a')]],
51
- ['schema', [ParameterReference.ofValue(arrayOfIntegerSchema)]],
52
- ]),
53
- );
47
+ var createArray = new Statement(
48
+ 'createArray',
49
+ create.getNamespace(),
50
+ create.getName(),
51
+ ).setParameterMap(
52
+ new Map([
53
+ ['name', [ParameterReference.ofValue('a')]],
54
+ ['schema', [ParameterReference.ofValue(arrayOfIntegerSchema)]],
55
+ ]),
56
+ );
54
57
 
55
58
  var rangeLoop = new RangeLoop().getSignature();
56
- var loop =new Statement('loop', rangeLoop.getNamespace(), rangeLoop.getName())
59
+ var loop = new Statement('loop', rangeLoop.getNamespace(), rangeLoop.getName())
57
60
  .setParameterMap(
58
61
  new Map([
59
62
  ['from', [ParameterReference.ofValue(0)]],
@@ -65,7 +68,7 @@ test('KIRuntime Test 1', () => {
65
68
  var resultObj = { name: 'result', value: { isExpression: true, value: 'Context.a' } };
66
69
 
67
70
  var generate = new GenerateEvent().getSignature();
68
- var outputGenerate =new Statement('outputStep', generate.getNamespace(), generate.getName())
71
+ var outputGenerate = new Statement('outputStep', generate.getNamespace(), generate.getName())
69
72
  .setParameterMap(
70
73
  new Map([
71
74
  ['eventName', [ParameterReference.ofValue('output')]],
@@ -75,22 +78,25 @@ test('KIRuntime Test 1', () => {
75
78
  .setDependentStatements(['Steps.loop.output']);
76
79
 
77
80
  var ifFunction = new If().getSignature();
78
- var ifStep =new Statement('if', ifFunction.getNamespace(), ifFunction.getName())
79
- .setParameterMap(
80
- new Map([
81
+ var ifStep = new Statement(
82
+ 'if',
83
+ ifFunction.getNamespace(),
84
+ ifFunction.getName(),
85
+ ).setParameterMap(
86
+ new Map([
87
+ [
88
+ 'condition',
81
89
  [
82
- 'condition',
83
- [
84
- ParameterReference.ofExpression(
85
- 'Steps.loop.iteration.index = 0 or Steps.loop.iteration.index = 1',
86
- ),
87
- ],
90
+ ParameterReference.ofExpression(
91
+ 'Steps.loop.iteration.index = 0 or Steps.loop.iteration.index = 1',
92
+ ),
88
93
  ],
89
- ]),
90
- );
94
+ ],
95
+ ]),
96
+ );
91
97
 
92
98
  var set = new SetFunction().getSignature();
93
- var set1 =new Statement('setOnTrue', set.getNamespace(), set.getName())
99
+ var set1 = new Statement('setOnTrue', set.getNamespace(), set.getName())
94
100
  .setParameterMap(
95
101
  new Map([
96
102
  ['name', [ParameterReference.ofValue('Context.a[Steps.loop.iteration.index]')]],
@@ -98,7 +104,7 @@ test('KIRuntime Test 1', () => {
98
104
  ]),
99
105
  )
100
106
  .setDependentStatements(['Steps.if.true']);
101
- var set2 =new Statement('setOnFalse', set.getNamespace(), set.getName())
107
+ var set2 = new Statement('setOnFalse', set.getNamespace(), set.getName())
102
108
  .setParameterMap(
103
109
  new Map([
104
110
  ['name', [ParameterReference.ofValue('Context.a[Steps.loop.iteration.index]')]],
@@ -115,141 +121,132 @@ test('KIRuntime Test 1', () => {
115
121
  .setDependentStatements(['Steps.if.false']);
116
122
 
117
123
  start = new Date().getTime();
118
- let out: EventResult[] = new KIRuntime(
119
- new FunctionDefinition('Fibonacci')
120
- .setSteps(
121
- new Map([
122
- Statement.ofEntry(createArray),
123
- Statement.ofEntry(loop),
124
- Statement.ofEntry(outputGenerate),
125
- Statement.ofEntry(ifStep),
126
- Statement.ofEntry(set1),
127
- Statement.ofEntry(set2),
128
- ]),
129
- )
130
- .setNamespace('Test')
131
- .setEvents(
132
- new Map([
133
- Event.outputEventMapEntry(
134
- new Map([['result', Schema.ofArray('result', Schema.ofInteger('result'))]]),
135
- ),
136
- ]),
137
- )
138
- .setParameters(
139
- new Map([
140
- [
141
- 'Count',
142
- new Parameter('Count',Schema.ofInteger('Count')),
143
- ],
144
- ]),
145
- ) as FunctionDefinition,
146
- new KIRunFunctionRepository(),
147
- new KIRunSchemaRepository(),
148
- )
149
- .execute(new FunctionExecutionParameters().setArguments(new Map([['Count', num]])))
150
- .allResults();
124
+ let out: EventResult[] = (
125
+ await new KIRuntime(
126
+ new FunctionDefinition('Fibonacci')
127
+ .setSteps(
128
+ new Map([
129
+ Statement.ofEntry(createArray),
130
+ Statement.ofEntry(loop),
131
+ Statement.ofEntry(outputGenerate),
132
+ Statement.ofEntry(ifStep),
133
+ Statement.ofEntry(set1),
134
+ Statement.ofEntry(set2),
135
+ ]),
136
+ )
137
+ .setNamespace('Test')
138
+ .setEvents(
139
+ new Map([
140
+ Event.outputEventMapEntry(
141
+ new Map([
142
+ ['result', Schema.ofArray('result', Schema.ofInteger('result'))],
143
+ ]),
144
+ ),
145
+ ]),
146
+ )
147
+ .setParameters(
148
+ new Map([['Count', new Parameter('Count', Schema.ofInteger('Count'))]]),
149
+ ) as FunctionDefinition,
150
+ new KIRunFunctionRepository(),
151
+ new KIRunSchemaRepository(),
152
+ ).execute(new FunctionExecutionParameters().setArguments(new Map([['Count', num]])))
153
+ ).allResults();
151
154
  console.log('KIRunt Logic : ' + (new Date().getTime() - start));
152
155
  expect(out[0].getResult().get('result')).toStrictEqual(array);
153
156
  });
154
157
 
155
- test('KIRuntime Test 2', () => {
158
+ test('KIRuntime Test 2', async () => {
156
159
  var genEvent = new GenerateEvent().getSignature();
157
160
 
158
161
  var expression = { isExpression: true, value: 'Steps.first.output.value' };
159
162
 
160
163
  let resultObj = { name: 'result', value: expression };
161
164
 
162
- let out: EventResult[] = new KIRuntime(
163
- (
164
- new FunctionDefinition('SingleCall')
165
- .setNamespace('Test')
166
- .setParameters(
167
- new Map([
168
- [
169
- 'Value',
170
- new Parameter('Value',Schema.ofInteger('Value')),
171
- ],
172
- ]),
173
- ) as FunctionDefinition
174
- ).setSteps(
175
- new Map([
176
- Statement.ofEntry(
177
- new Statement('first', Namespaces.MATH, 'Absolute')
178
- .setParameterMap(
165
+ let out: EventResult[] = (
166
+ await new KIRuntime(
167
+ (
168
+ new FunctionDefinition('SingleCall')
169
+ .setNamespace('Test')
170
+ .setParameters(
171
+ new Map([['Value', new Parameter('Value', Schema.ofInteger('Value'))]]),
172
+ ) as FunctionDefinition
173
+ ).setSteps(
174
+ new Map([
175
+ Statement.ofEntry(
176
+ new Statement('first', Namespaces.MATH, 'Absolute').setParameterMap(
179
177
  new Map([
180
178
  ['value', [ParameterReference.ofExpression('Arguments.Value')]],
181
179
  ]),
182
180
  ),
183
- ),
184
- Statement.ofEntry(
185
- new Statement('second', genEvent.getNamespace(), genEvent.getName())
186
- .setParameterMap(
181
+ ),
182
+ Statement.ofEntry(
183
+ new Statement(
184
+ 'second',
185
+ genEvent.getNamespace(),
186
+ genEvent.getName(),
187
+ ).setParameterMap(
187
188
  new Map([
188
189
  ['eventName', [ParameterReference.ofValue('output')]],
189
190
  ['results', [ParameterReference.ofValue(resultObj)]],
190
191
  ]),
191
192
  ),
192
- ),
193
- ]),
194
- ),
195
- new KIRunFunctionRepository(),
196
- new KIRunSchemaRepository(),
197
- )
198
- .execute(new FunctionExecutionParameters().setArguments(new Map([['Value', -10]])))
199
- .allResults();
193
+ ),
194
+ ]),
195
+ ),
196
+ new KIRunFunctionRepository(),
197
+ new KIRunSchemaRepository(),
198
+ ).execute(new FunctionExecutionParameters().setArguments(new Map([['Value', -10]])))
199
+ ).allResults();
200
200
 
201
201
  expect(out[0].getResult().get('result')).toBe(10);
202
202
  });
203
- test('KIRuntime Test 3', () => {
203
+ test('KIRuntime Test 3', async () => {
204
204
  var genEvent = new GenerateEvent().getSignature();
205
205
 
206
206
  var expression = { isExpression: true, value: 'Steps.first.output.value' };
207
207
 
208
208
  let resultObj = { name: 'result', value: expression };
209
209
 
210
- let out: EventResult[] = new KIRuntime(
211
- (
212
- new FunctionDefinition('SingleCall')
213
- .setNamespace('Test')
214
- .setParameters(
215
- new Map([
216
- [
217
- 'Value',
218
- new Parameter('Value',Schema.ofInteger('Value')),
219
- ],
220
- ]),
221
- ) as FunctionDefinition
222
- ).setSteps(
223
- new Map([
224
- Statement.ofEntry(
225
- new Statement('first', Namespaces.MATH, 'CubeRoot')
226
- .setParameterMap(
210
+ let out: EventResult[] = (
211
+ await new KIRuntime(
212
+ (
213
+ new FunctionDefinition('SingleCall')
214
+ .setNamespace('Test')
215
+ .setParameters(
216
+ new Map([['Value', new Parameter('Value', Schema.ofInteger('Value'))]]),
217
+ ) as FunctionDefinition
218
+ ).setSteps(
219
+ new Map([
220
+ Statement.ofEntry(
221
+ new Statement('first', Namespaces.MATH, 'CubeRoot').setParameterMap(
227
222
  new Map([
228
223
  ['value', [ParameterReference.ofExpression('Arguments.Value')]],
229
224
  ]),
230
225
  ),
231
- ),
232
- Statement.ofEntry(
233
- new Statement('second', genEvent.getNamespace(), genEvent.getName())
234
- .setParameterMap(
226
+ ),
227
+ Statement.ofEntry(
228
+ new Statement(
229
+ 'second',
230
+ genEvent.getNamespace(),
231
+ genEvent.getName(),
232
+ ).setParameterMap(
235
233
  new Map([
236
234
  ['eventName', [ParameterReference.ofValue('output')]],
237
235
  ['results', [ParameterReference.ofValue(resultObj)]],
238
236
  ]),
239
237
  ),
240
- ),
241
- ]),
242
- ),
243
- new KIRunFunctionRepository(),
244
- new KIRunSchemaRepository(),
245
- )
246
- .execute(new FunctionExecutionParameters().setArguments(new Map([['Value', 27]])))
247
- .allResults();
238
+ ),
239
+ ]),
240
+ ),
241
+ new KIRunFunctionRepository(),
242
+ new KIRunSchemaRepository(),
243
+ ).execute(new FunctionExecutionParameters().setArguments(new Map([['Value', 27]])))
244
+ ).allResults();
248
245
 
249
246
  expect(out[0].getResult().get('result')).toBe(3);
250
247
  });
251
248
 
252
- test('KIRuntime Test 4', () => {
249
+ test('KIRuntime Test 4', async () => {
253
250
  let start = new Date().getTime();
254
251
  const num = 7;
255
252
  let array = new Array(num);
@@ -266,14 +263,7 @@ test('KIRuntime Test 4', () => {
266
263
 
267
264
  var fibFunctionSignature = new FunctionSignature('FibFunction')
268
265
  .setNamespace('FibSpace')
269
- .setParameters(
270
- new Map([
271
- [
272
- 'value',
273
- new Parameter('value',Schema.ofInteger('value')),
274
- ],
275
- ]),
276
- )
266
+ .setParameters(new Map([['value', new Parameter('value', Schema.ofInteger('value'))]]))
277
267
  .setEvents(
278
268
  new Map([
279
269
  Event.outputEventMapEntry(
@@ -286,7 +276,9 @@ test('KIRuntime Test 4', () => {
286
276
  return fibFunctionSignature;
287
277
  }
288
278
 
289
- protected internalExecute(context: FunctionExecutionParameters): FunctionOutput {
279
+ protected async internalExecute(
280
+ context: FunctionExecutionParameters,
281
+ ): Promise<FunctionOutput> {
290
282
  let count = context.getArguments()?.get('value');
291
283
  let a = new Array(count);
292
284
  for (let i = 0; i < count; i++) a[i] = i < 2 ? i : a[i - 1] + a[i - 2];
@@ -308,44 +300,45 @@ test('KIRuntime Test 4', () => {
308
300
  });
309
301
 
310
302
  start = new Date().getTime();
311
- let out: EventResult[] = new KIRuntime(
312
- (
313
- new FunctionDefinition('CustomFunction')
314
- .setNamespace('Test')
315
- .setParameters(
316
- new Map([
317
- [
318
- 'Value',
319
- new Parameter('Value',Schema.ofInteger('Value')),
320
- ],
321
- ]),
322
- ) as FunctionDefinition
323
- ).setSteps(
324
- new Map([
325
- Statement.ofEntry(
326
- new Statement('fib', fibFunctionSignature.getNamespace(), 'asdf')
327
- .setParameterMap(
303
+ let out: EventResult[] = (
304
+ await new KIRuntime(
305
+ (
306
+ new FunctionDefinition('CustomFunction')
307
+ .setNamespace('Test')
308
+ .setParameters(
309
+ new Map([['Value', new Parameter('Value', Schema.ofInteger('Value'))]]),
310
+ ) as FunctionDefinition
311
+ ).setSteps(
312
+ new Map([
313
+ Statement.ofEntry(
314
+ new Statement(
315
+ 'fib',
316
+ fibFunctionSignature.getNamespace(),
317
+ 'asdf',
318
+ ).setParameterMap(
328
319
  new Map([
329
320
  ['value', [ParameterReference.ofExpression('Arguments.Value')]],
330
321
  ]),
331
322
  ),
332
- ),
333
- Statement.ofEntry(
334
- new Statement('fiboutput', genEvent.getNamespace(), genEvent.getName())
335
- .setParameterMap(
323
+ ),
324
+ Statement.ofEntry(
325
+ new Statement(
326
+ 'fiboutput',
327
+ genEvent.getNamespace(),
328
+ genEvent.getName(),
329
+ ).setParameterMap(
336
330
  new Map([
337
331
  ['eventName', [ParameterReference.ofValue('output')]],
338
332
  ['results', [ParameterReference.ofValue(resultObj)]],
339
333
  ]),
340
334
  ),
341
- ),
342
- ]),
343
- ),
344
- hybrid,
345
- new KIRunSchemaRepository(),
346
- )
347
- .execute(new FunctionExecutionParameters().setArguments(new Map([['Value', num]])))
348
- .allResults();
335
+ ),
336
+ ]),
337
+ ),
338
+ hybrid,
339
+ new KIRunSchemaRepository(),
340
+ ).execute(new FunctionExecutionParameters().setArguments(new Map([['Value', num]])))
341
+ ).allResults();
349
342
  console.log('KIRun Logic : ' + (new Date().getTime() - start));
350
343
  expect(out[0].getResult().get('result')).toStrictEqual(array);
351
344
  });
@@ -27,3 +27,12 @@ test('LinkedList Test', () => {
27
27
  x.add(4);
28
28
  expect(x.toArray()).toStrictEqual([1, 2, 3, 4]);
29
29
  });
30
+
31
+ test('LinkedList Test - peekLastTest', () => {
32
+ let x = new LinkedList();
33
+ x.push(230);
34
+ x.push(231);
35
+ x.push(233);
36
+
37
+ expect(x.peekLast()).toBe(230);
38
+ });