@sdeverywhere/check-core 0.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.
@@ -0,0 +1,756 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Model Check Test",
4
+ "type": "array",
5
+ "description": "A group of tests.",
6
+ "items": {
7
+ "$ref": "#/$defs/group"
8
+ },
9
+ "$defs": {
10
+ "group": {
11
+ "type": "object",
12
+ "additionalProperties": false,
13
+ "properties": {
14
+ "describe": {
15
+ "type": "string"
16
+ },
17
+ "tests": {
18
+ "type": "array",
19
+ "items": {
20
+ "$ref": "#/$defs/test"
21
+ }
22
+ }
23
+ },
24
+ "required": [
25
+ "describe",
26
+ "tests"
27
+ ]
28
+ },
29
+ "test": {
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "properties": {
33
+ "it": {
34
+ "type": "string"
35
+ },
36
+ "scenarios": {
37
+ "type": "array",
38
+ "items": {
39
+ "$ref": "#/$defs/scenario"
40
+ },
41
+ "minItems": 1
42
+ },
43
+ "datasets": {
44
+ "type": "array",
45
+ "items": {
46
+ "$ref": "#/$defs/dataset"
47
+ },
48
+ "minItems": 1
49
+ },
50
+ "predicates": {
51
+ "type": "array",
52
+ "items": {
53
+ "$ref": "#/$defs/predicate"
54
+ },
55
+ "minItems": 1
56
+ }
57
+ },
58
+ "required": [
59
+ "it",
60
+ "datasets",
61
+ "predicates"
62
+ ]
63
+ },
64
+ "scenario": {
65
+ "oneOf": [
66
+ {
67
+ "$ref": "#/$defs/scenario_with_input_at_position"
68
+ },
69
+ {
70
+ "$ref": "#/$defs/scenario_with_input_at_value"
71
+ },
72
+ {
73
+ "$ref": "#/$defs/scenario_with_multiple_input_settings"
74
+ },
75
+ {
76
+ "$ref": "#/$defs/scenario_with_inputs_in_preset_at_position"
77
+ },
78
+ {
79
+ "$ref": "#/$defs/scenario_with_inputs_in_group_at_position"
80
+ },
81
+ {
82
+ "$ref": "#/$defs/scenario_preset"
83
+ },
84
+ {
85
+ "$ref": "#/$defs/scenario_expand_for_each_input_in_group"
86
+ }
87
+ ]
88
+ },
89
+ "scenario_position": {
90
+ "type": "string",
91
+ "enum": [
92
+ "min",
93
+ "max",
94
+ "default"
95
+ ]
96
+ },
97
+ "scenario_with_input_at_position": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "properties": {
101
+ "with": {
102
+ "type": "string"
103
+ },
104
+ "at": {
105
+ "$ref": "#/$defs/scenario_position"
106
+ }
107
+ },
108
+ "required": [
109
+ "with",
110
+ "at"
111
+ ]
112
+ },
113
+ "scenario_with_input_at_value": {
114
+ "type": "object",
115
+ "additionalProperties": false,
116
+ "properties": {
117
+ "with": {
118
+ "type": "string"
119
+ },
120
+ "at": {
121
+ "type": "number"
122
+ }
123
+ },
124
+ "required": [
125
+ "with",
126
+ "at"
127
+ ]
128
+ },
129
+ "scenario_input_at_position": {
130
+ "type": "object",
131
+ "additionalProperties": false,
132
+ "properties": {
133
+ "input": {
134
+ "type": "string"
135
+ },
136
+ "at": {
137
+ "$ref": "#/$defs/scenario_position"
138
+ }
139
+ },
140
+ "required": [
141
+ "input",
142
+ "at"
143
+ ]
144
+ },
145
+ "scenario_input_at_value": {
146
+ "type": "object",
147
+ "additionalProperties": false,
148
+ "properties": {
149
+ "input": {
150
+ "type": "string"
151
+ },
152
+ "at": {
153
+ "type": "number"
154
+ }
155
+ },
156
+ "required": [
157
+ "input",
158
+ "at"
159
+ ]
160
+ },
161
+ "scenario_input_setting": {
162
+ "oneOf": [
163
+ {
164
+ "$ref": "#/$defs/scenario_input_at_position"
165
+ },
166
+ {
167
+ "$ref": "#/$defs/scenario_input_at_value"
168
+ }
169
+ ]
170
+ },
171
+ "scenario_input_setting_array": {
172
+ "type": "array",
173
+ "items": {
174
+ "$ref": "#/$defs/scenario_input_setting"
175
+ },
176
+ "minItems": 1
177
+ },
178
+ "scenario_with_multiple_input_settings": {
179
+ "type": "object",
180
+ "additionalProperties": false,
181
+ "properties": {
182
+ "with": {
183
+ "$ref": "#/$defs/scenario_input_setting_array"
184
+ }
185
+ },
186
+ "required": [
187
+ "with"
188
+ ]
189
+ },
190
+ "scenario_with_inputs_in_preset_at_position": {
191
+ "type": "object",
192
+ "additionalProperties": false,
193
+ "properties": {
194
+ "with_inputs": {
195
+ "type": "string",
196
+ "enum": [
197
+ "all"
198
+ ]
199
+ },
200
+ "at": {
201
+ "$ref": "#/$defs/scenario_position"
202
+ }
203
+ },
204
+ "required": [
205
+ "with_inputs",
206
+ "at"
207
+ ]
208
+ },
209
+ "scenario_with_inputs_in_group_at_position": {
210
+ "type": "object",
211
+ "additionalProperties": false,
212
+ "properties": {
213
+ "with_inputs_in": {
214
+ "type": "string"
215
+ },
216
+ "at": {
217
+ "$ref": "#/$defs/scenario_position"
218
+ }
219
+ },
220
+ "required": [
221
+ "with_inputs_in",
222
+ "at"
223
+ ]
224
+ },
225
+ "scenario_preset": {
226
+ "type": "object",
227
+ "additionalProperties": false,
228
+ "properties": {
229
+ "preset": {
230
+ "type": "string",
231
+ "enum": [
232
+ "matrix"
233
+ ]
234
+ }
235
+ },
236
+ "required": [
237
+ "preset"
238
+ ]
239
+ },
240
+ "scenario_expand_for_each_input_in_group": {
241
+ "type": "object",
242
+ "additionalProperties": false,
243
+ "properties": {
244
+ "scenarios_for_each_input_in": {
245
+ "type": "string"
246
+ },
247
+ "at": {
248
+ "$ref": "#/$defs/scenario_position"
249
+ }
250
+ },
251
+ "required": [
252
+ "scenarios_for_each_input_in",
253
+ "at"
254
+ ]
255
+ },
256
+ "dataset": {
257
+ "oneOf": [
258
+ {
259
+ "$ref": "#/$defs/dataset_name"
260
+ },
261
+ {
262
+ "$ref": "#/$defs/dataset_group"
263
+ },
264
+ {
265
+ "$ref": "#/$defs/dataset_matching"
266
+ }
267
+ ]
268
+ },
269
+ "dataset_name": {
270
+ "type": "object",
271
+ "additionalProperties": false,
272
+ "properties": {
273
+ "name": {
274
+ "type": "string"
275
+ },
276
+ "source": {
277
+ "type": "string"
278
+ }
279
+ },
280
+ "required": [
281
+ "name"
282
+ ]
283
+ },
284
+ "dataset_group": {
285
+ "type": "object",
286
+ "additionalProperties": false,
287
+ "properties": {
288
+ "group": {
289
+ "type": "string"
290
+ }
291
+ },
292
+ "required": [
293
+ "group"
294
+ ]
295
+ },
296
+ "dataset_matching": {
297
+ "type": "object",
298
+ "additionalProperties": false,
299
+ "properties": {
300
+ "matching": {
301
+ "type": "object",
302
+ "additionalProperties": false,
303
+ "properties": {
304
+ "type": {
305
+ "type": "string"
306
+ }
307
+ },
308
+ "required": [
309
+ "type"
310
+ ]
311
+ }
312
+ },
313
+ "required": [
314
+ "matching"
315
+ ]
316
+ },
317
+ "predicate": {
318
+ "type": "object",
319
+ "oneOf": [
320
+ {
321
+ "$ref": "#/$defs/predicate_gt"
322
+ },
323
+ {
324
+ "$ref": "#/$defs/predicate_gte"
325
+ },
326
+ {
327
+ "$ref": "#/$defs/predicate_lt"
328
+ },
329
+ {
330
+ "$ref": "#/$defs/predicate_lte"
331
+ },
332
+ {
333
+ "$ref": "#/$defs/predicate_gt_lt"
334
+ },
335
+ {
336
+ "$ref": "#/$defs/predicate_gt_lte"
337
+ },
338
+ {
339
+ "$ref": "#/$defs/predicate_gte_lt"
340
+ },
341
+ {
342
+ "$ref": "#/$defs/predicate_gte_lte"
343
+ },
344
+ {
345
+ "$ref": "#/$defs/predicate_eq"
346
+ },
347
+ {
348
+ "$ref": "#/$defs/predicate_approx"
349
+ }
350
+ ]
351
+ },
352
+ "predicate_gt": {
353
+ "type": "object",
354
+ "additionalProperties": false,
355
+ "properties": {
356
+ "gt": {
357
+ "$ref": "#/$defs/predicate_ref"
358
+ },
359
+ "time": {
360
+ "$ref": "#/$defs/predicate_time"
361
+ }
362
+ },
363
+ "required": [
364
+ "gt"
365
+ ]
366
+ },
367
+ "predicate_gte": {
368
+ "type": "object",
369
+ "additionalProperties": false,
370
+ "properties": {
371
+ "gte": {
372
+ "$ref": "#/$defs/predicate_ref"
373
+ },
374
+ "time": {
375
+ "$ref": "#/$defs/predicate_time"
376
+ }
377
+ },
378
+ "required": [
379
+ "gte"
380
+ ]
381
+ },
382
+ "predicate_lt": {
383
+ "type": "object",
384
+ "additionalProperties": false,
385
+ "properties": {
386
+ "lt": {
387
+ "$ref": "#/$defs/predicate_ref"
388
+ },
389
+ "time": {
390
+ "$ref": "#/$defs/predicate_time"
391
+ }
392
+ },
393
+ "required": [
394
+ "lt"
395
+ ]
396
+ },
397
+ "predicate_lte": {
398
+ "type": "object",
399
+ "additionalProperties": false,
400
+ "properties": {
401
+ "lte": {
402
+ "$ref": "#/$defs/predicate_ref"
403
+ },
404
+ "time": {
405
+ "$ref": "#/$defs/predicate_time"
406
+ }
407
+ },
408
+ "required": [
409
+ "lte"
410
+ ]
411
+ },
412
+ "predicate_gt_lt": {
413
+ "type": "object",
414
+ "additionalProperties": false,
415
+ "properties": {
416
+ "gt": {
417
+ "$ref": "#/$defs/predicate_ref"
418
+ },
419
+ "lt": {
420
+ "$ref": "#/$defs/predicate_ref"
421
+ },
422
+ "time": {
423
+ "$ref": "#/$defs/predicate_time"
424
+ }
425
+ },
426
+ "required": [
427
+ "gt",
428
+ "lt"
429
+ ]
430
+ },
431
+ "predicate_gt_lte": {
432
+ "type": "object",
433
+ "additionalProperties": false,
434
+ "properties": {
435
+ "gt": {
436
+ "$ref": "#/$defs/predicate_ref"
437
+ },
438
+ "lte": {
439
+ "$ref": "#/$defs/predicate_ref"
440
+ },
441
+ "time": {
442
+ "$ref": "#/$defs/predicate_time"
443
+ }
444
+ },
445
+ "required": [
446
+ "gt",
447
+ "lte"
448
+ ]
449
+ },
450
+ "predicate_gte_lt": {
451
+ "type": "object",
452
+ "additionalProperties": false,
453
+ "properties": {
454
+ "gte": {
455
+ "$ref": "#/$defs/predicate_ref"
456
+ },
457
+ "lt": {
458
+ "$ref": "#/$defs/predicate_ref"
459
+ },
460
+ "time": {
461
+ "$ref": "#/$defs/predicate_time"
462
+ }
463
+ },
464
+ "required": [
465
+ "gte",
466
+ "lt"
467
+ ]
468
+ },
469
+ "predicate_gte_lte": {
470
+ "type": "object",
471
+ "additionalProperties": false,
472
+ "properties": {
473
+ "gte": {
474
+ "$ref": "#/$defs/predicate_ref"
475
+ },
476
+ "lte": {
477
+ "$ref": "#/$defs/predicate_ref"
478
+ },
479
+ "time": {
480
+ "$ref": "#/$defs/predicate_time"
481
+ }
482
+ },
483
+ "required": [
484
+ "gte",
485
+ "lte"
486
+ ]
487
+ },
488
+ "predicate_eq": {
489
+ "type": "object",
490
+ "additionalProperties": false,
491
+ "properties": {
492
+ "eq": {
493
+ "$ref": "#/$defs/predicate_ref"
494
+ },
495
+ "time": {
496
+ "$ref": "#/$defs/predicate_time"
497
+ }
498
+ },
499
+ "required": [
500
+ "eq"
501
+ ]
502
+ },
503
+ "predicate_approx": {
504
+ "type": "object",
505
+ "additionalProperties": false,
506
+ "properties": {
507
+ "approx": {
508
+ "$ref": "#/$defs/predicate_ref"
509
+ },
510
+ "tolerance": {
511
+ "type": "number"
512
+ },
513
+ "time": {
514
+ "$ref": "#/$defs/predicate_time"
515
+ }
516
+ },
517
+ "required": [
518
+ "approx"
519
+ ]
520
+ },
521
+ "predicate_ref": {
522
+ "oneOf": [
523
+ {
524
+ "$ref": "#/$defs/predicate_ref_constant"
525
+ },
526
+ {
527
+ "$ref": "#/$defs/predicate_ref_data"
528
+ }
529
+ ]
530
+ },
531
+ "predicate_ref_constant": {
532
+ "type": "number"
533
+ },
534
+ "predicate_ref_data": {
535
+ "type": "object",
536
+ "additionalProperties": false,
537
+ "properties": {
538
+ "dataset": {
539
+ "$ref": "#/$defs/predicate_ref_data_dataset"
540
+ },
541
+ "scenario": {
542
+ "$ref": "#/$defs/predicate_ref_data_scenario"
543
+ }
544
+ },
545
+ "required": [
546
+ "dataset"
547
+ ]
548
+ },
549
+ "predicate_ref_data_dataset": {
550
+ "oneOf": [
551
+ {
552
+ "$ref": "#/$defs/dataset_name"
553
+ },
554
+ {
555
+ "$ref": "#/$defs/predicate_ref_data_dataset_special"
556
+ }
557
+ ]
558
+ },
559
+ "predicate_ref_data_dataset_special": {
560
+ "type": "string",
561
+ "enum": [
562
+ "inherit"
563
+ ]
564
+ },
565
+ "predicate_ref_data_scenario": {
566
+ "oneOf": [
567
+ {
568
+ "$ref": "#/$defs/scenario_with_input_at_position"
569
+ },
570
+ {
571
+ "$ref": "#/$defs/scenario_with_input_at_value"
572
+ },
573
+ {
574
+ "$ref": "#/$defs/scenario_with_multiple_input_settings"
575
+ },
576
+ {
577
+ "$ref": "#/$defs/scenario_with_inputs_in_preset_at_position"
578
+ },
579
+ {
580
+ "$ref": "#/$defs/scenario_with_inputs_in_group_at_position"
581
+ },
582
+ {
583
+ "$ref": "#/$defs/predicate_ref_data_scenario_special"
584
+ }
585
+ ]
586
+ },
587
+ "predicate_ref_data_scenario_special": {
588
+ "type": "string",
589
+ "enum": [
590
+ "inherit"
591
+ ]
592
+ },
593
+ "predicate_time": {
594
+ "oneOf": [
595
+ {
596
+ "$ref": "#/$defs/predicate_time_single"
597
+ },
598
+ {
599
+ "$ref": "#/$defs/predicate_time_pair"
600
+ },
601
+ {
602
+ "$ref": "#/$defs/predicate_time_gt"
603
+ },
604
+ {
605
+ "$ref": "#/$defs/predicate_time_gte"
606
+ },
607
+ {
608
+ "$ref": "#/$defs/predicate_time_lt"
609
+ },
610
+ {
611
+ "$ref": "#/$defs/predicate_time_lte"
612
+ },
613
+ {
614
+ "$ref": "#/$defs/predicate_time_gt_lt"
615
+ },
616
+ {
617
+ "$ref": "#/$defs/predicate_time_gt_lte"
618
+ },
619
+ {
620
+ "$ref": "#/$defs/predicate_time_gte_lt"
621
+ },
622
+ {
623
+ "$ref": "#/$defs/predicate_time_gte_lte"
624
+ }
625
+ ]
626
+ },
627
+ "predicate_time_single": {
628
+ "type": "number"
629
+ },
630
+ "predicate_time_pair": {
631
+ "type": "array",
632
+ "items": [
633
+ {
634
+ "type": "number"
635
+ },
636
+ {
637
+ "type": "number"
638
+ }
639
+ ],
640
+ "minItems": 2,
641
+ "maxItems": 2
642
+ },
643
+ "predicate_time_gt": {
644
+ "type": "object",
645
+ "additionalProperties": false,
646
+ "properties": {
647
+ "after_excl": {
648
+ "type": "number"
649
+ }
650
+ },
651
+ "required": [
652
+ "after_excl"
653
+ ]
654
+ },
655
+ "predicate_time_gte": {
656
+ "type": "object",
657
+ "additionalProperties": false,
658
+ "properties": {
659
+ "after_incl": {
660
+ "type": "number"
661
+ }
662
+ },
663
+ "required": [
664
+ "after_incl"
665
+ ]
666
+ },
667
+ "predicate_time_lt": {
668
+ "type": "object",
669
+ "additionalProperties": false,
670
+ "properties": {
671
+ "before_excl": {
672
+ "type": "number"
673
+ }
674
+ },
675
+ "required": [
676
+ "before_excl"
677
+ ]
678
+ },
679
+ "predicate_time_lte": {
680
+ "type": "object",
681
+ "additionalProperties": false,
682
+ "properties": {
683
+ "before_incl": {
684
+ "type": "number"
685
+ }
686
+ },
687
+ "required": [
688
+ "before_incl"
689
+ ]
690
+ },
691
+ "predicate_time_gt_lt": {
692
+ "type": "object",
693
+ "additionalProperties": false,
694
+ "properties": {
695
+ "after_excl": {
696
+ "type": "number"
697
+ },
698
+ "before_excl": {
699
+ "type": "number"
700
+ }
701
+ },
702
+ "required": [
703
+ "after_excl",
704
+ "before_excl"
705
+ ]
706
+ },
707
+ "predicate_time_gt_lte": {
708
+ "type": "object",
709
+ "additionalProperties": false,
710
+ "properties": {
711
+ "after_excl": {
712
+ "type": "number"
713
+ },
714
+ "before_incl": {
715
+ "type": "number"
716
+ }
717
+ },
718
+ "required": [
719
+ "after_excl",
720
+ "before_incl"
721
+ ]
722
+ },
723
+ "predicate_time_gte_lt": {
724
+ "type": "object",
725
+ "additionalProperties": false,
726
+ "properties": {
727
+ "after_incl": {
728
+ "type": "number"
729
+ },
730
+ "before_excl": {
731
+ "type": "number"
732
+ }
733
+ },
734
+ "required": [
735
+ "after_incl",
736
+ "before_excl"
737
+ ]
738
+ },
739
+ "predicate_time_gte_lte": {
740
+ "type": "object",
741
+ "additionalProperties": false,
742
+ "properties": {
743
+ "after_incl": {
744
+ "type": "number"
745
+ },
746
+ "before_incl": {
747
+ "type": "number"
748
+ }
749
+ },
750
+ "required": [
751
+ "after_incl",
752
+ "before_incl"
753
+ ]
754
+ }
755
+ }
756
+ }