@@ -532,6 +532,280 @@ public async Task ExecuteRuleWithJsonElement(string ruleFileName)
532532 Assert . All ( result , c => Assert . True ( c . IsSuccess ) ) ;
533533 }
534534
535+ [ Theory ]
536+ [ InlineData ( "rules11.json" ) ]
537+ public async Task RulesEngineWithGlobalParam_RunsSuccessfully ( string ruleFileName )
538+ {
539+
540+ var re = GetRulesEngine ( ruleFileName , new ReSettings ( ) { } ) ;
541+
542+ var input1 = new [ ] {
543+ new {
544+ Value = 0.13259286 ,
545+ ChangeDateTime = "2023-07-28T19:57:07.432339Z"
546+ } ,
547+ new {
548+ Value = 0.09435427 ,
549+ ChangeDateTime = "2023-07-28T19:58:04.536459Z"
550+ } ,
551+ new {
552+ Value = 0.14896593 ,
553+ ChangeDateTime = "2023-07-28T19:59:08.682072Z"
554+ } ,
555+ new {
556+ Value = 0.12852388 ,
557+ ChangeDateTime = "2023-07-28T20:00:06.78036Z"
558+ } ,
559+ new {
560+ Value = 0.17011189 ,
561+ ChangeDateTime = "2023-07-28T20:00:54.873615Z"
562+ } ,
563+ new {
564+ Value = 0.0532116 ,
565+ ChangeDateTime = "2023-07-28T20:02:52.04049Z"
566+ } ,
567+ new {
568+ Value = 0.04064374 ,
569+ ChangeDateTime = "2023-07-28T20:03:54.168499Z"
570+ } ,
571+ new {
572+ Value = 0.03748944 ,
573+ ChangeDateTime = "2023-07-28T20:03:54.194786Z"
574+ } ,
575+ new {
576+ Value = 0.07752395 ,
577+ ChangeDateTime = "2023-07-28T20:06:32.451464Z"
578+ } ,
579+ new {
580+ Value = 0.07294922 ,
581+ ChangeDateTime = "2023-07-28T20:07:38.691755Z"
582+ } ,
583+ new {
584+ Value = 0.09892442 ,
585+ ChangeDateTime = "2023-07-28T20:08:37.98802Z"
586+ } ,
587+ new {
588+ Value = 0.06370641 ,
589+ ChangeDateTime = "2023-07-28T20:05:41.358461Z"
590+ } ,
591+ new {
592+ Value = 0.07550429 ,
593+ ChangeDateTime = "2023-07-28T20:09:48.129748Z"
594+ } ,
595+ new {
596+ Value = 0.0653021 ,
597+ ChangeDateTime = "2023-07-28T20:10:48.274482Z"
598+ } ,
599+ new {
600+ Value = 0.09304246 ,
601+ ChangeDateTime = "2023-07-28T20:11:49.436983Z"
602+ } ,
603+ new {
604+ Value = 0.0797422 ,
605+ ChangeDateTime = "2023-07-28T20:12:53.609118Z"
606+ } ,
607+ new {
608+ Value = 0.08211832 ,
609+ ChangeDateTime = "2023-07-28T20:13:52.699728Z"
610+ } ,
611+ new {
612+ Value = 0.06955433 ,
613+ ChangeDateTime = "2023-07-28T20:15:03.843289Z"
614+ } ,
615+ new {
616+ Value = 0.07626661 ,
617+ ChangeDateTime = "2023-07-28T20:15:03.870057Z"
618+ } ,
619+ new {
620+ Value = 0.05033984 ,
621+ ChangeDateTime = "2023-07-28T20:16:17.032262Z"
622+ } ,
623+ new {
624+ Value = 0.05202596 ,
625+ ChangeDateTime = "2023-07-28T20:17:20.172669Z"
626+ } ,
627+ new {
628+ Value = 0.06861198 ,
629+ ChangeDateTime = "2023-07-28T20:18:32.303309Z"
630+ } ,
631+ new {
632+ Value = 0.04935532 ,
633+ ChangeDateTime = "2023-07-28T20:19:33.451426Z"
634+ } ,
635+ new {
636+ Value = 0.04073699 ,
637+ ChangeDateTime = "2023-07-28T20:20:37.737395Z"
638+ } ,
639+ new {
640+ Value = 0.02164916 ,
641+ ChangeDateTime = "2023-07-28T20:21:38.883635Z"
642+ } ,
643+ new {
644+ Value = 0.01334031 ,
645+ ChangeDateTime = "2023-07-28T20:22:40.053193Z"
646+ } ,
647+ new {
648+ Value = 0.0336915 ,
649+ ChangeDateTime = "2023-07-28T20:23:44.240297Z"
650+ } ,
651+ new {
652+ Value = 0.04870055 ,
653+ ChangeDateTime = "2023-07-28T20:26:33.584756Z"
654+ } ,
655+ new {
656+ Value = 0.07125243 ,
657+ ChangeDateTime = "2023-07-28T20:28:11.7889Z"
658+ } ,
659+ new {
660+ Value = 0.04904275 ,
661+ ChangeDateTime = "2023-07-28T20:24:40.346216Z"
662+ } ,
663+ new {
664+ Value = 0.03625701 ,
665+ ChangeDateTime = "2023-07-28T20:27:20.707478Z"
666+ } ,
667+ new {
668+ Value = 0.05703328 ,
669+ ChangeDateTime = "2023-07-28T20:28:57.876436Z"
670+ } ,
671+ new {
672+ Value = 0.04364996 ,
673+ ChangeDateTime = "2023-07-28T20:25:43.496357Z"
674+ } ,
675+ new {
676+ Value = 0.07558272 ,
677+ ChangeDateTime = "2023-07-28T20:30:11.023295Z"
678+ } ,
679+ new {
680+ Value = 0.03073958 ,
681+ ChangeDateTime = "2023-07-28T20:33:00.347672Z"
682+ } ,
683+ new {
684+ Value = 0.0341309 ,
685+ ChangeDateTime = "2023-07-28T20:33:59.790621Z"
686+ } ,
687+ new {
688+ Value = 0.05270871 ,
689+ ChangeDateTime = "2023-07-28T20:31:15.166193Z"
690+ } ,
691+ new {
692+ Value = 0.09138862 ,
693+ ChangeDateTime = "2023-07-28T20:32:08.259273Z"
694+ } ,
695+ new {
696+ Value = 0.15922104 ,
697+ ChangeDateTime = "2023-07-28T20:35:12.963809Z"
698+ } ,
699+ new {
700+ Value = 0.11383641 ,
701+ ChangeDateTime = "2023-07-28T20:36:26.120815Z"
702+ } ,
703+ new {
704+ Value = 0.12404025 ,
705+ ChangeDateTime = "2023-07-28T20:37:37.27212Z"
706+ } ,
707+ new {
708+ Value = 0.06010197 ,
709+ ChangeDateTime = "2023-07-28T20:38:47.409412Z"
710+ } ,
711+ new {
712+ Value = 0.08396237 ,
713+ ChangeDateTime = "2023-07-28T20:39:37.504217Z"
714+ } ,
715+ new {
716+ Value = 0.06731881 ,
717+ ChangeDateTime = "2023-07-28T20:40:27.588895Z"
718+ } ,
719+ new {
720+ Value = 0.05617253 ,
721+ ChangeDateTime = "2023-07-28T20:41:33.760373Z"
722+ } ,
723+ new {
724+ Value = 0.0585155 ,
725+ ChangeDateTime = "2023-07-28T20:42:26.847144Z"
726+ } ,
727+ new {
728+ Value = 0.06793098 ,
729+ ChangeDateTime = "2023-07-28T20:43:36.988904Z"
730+ } ,
731+ new {
732+ Value = 0.06879344 ,
733+ ChangeDateTime = "2023-07-28T20:44:46.133926Z"
734+ } ,
735+ new {
736+ Value = 0.06931814 ,
737+ ChangeDateTime = "2023-07-28T20:45:50.275932Z"
738+ } ,
739+ new {
740+ Value = 0.04802603 ,
741+ ChangeDateTime = "2023-07-28T20:46:36.367289Z"
742+ } ,
743+ new {
744+ Value = 0.04036225 ,
745+ ChangeDateTime = "2023-07-28T20:47:27.484188Z"
746+ } ,
747+ new {
748+ Value = 0.04968483 ,
749+ ChangeDateTime = "2023-07-28T20:48:13.582228Z"
750+ } ,
751+ new {
752+ Value = 0.0773483 ,
753+ ChangeDateTime = "2023-07-28T19:49:16.354277Z"
754+ } ,
755+ new {
756+ Value = 0.08710921 ,
757+ ChangeDateTime = "2023-07-28T19:48:25.253743Z"
758+ } ,
759+ new {
760+ Value = 0.07665287 ,
761+ ChangeDateTime = "2023-07-28T19:50:25.496642Z"
762+ } ,
763+ new {
764+ Value = 0.06121748 ,
765+ ChangeDateTime = "2023-07-28T19:51:20.644955Z"
766+ } ,
767+ new {
768+ Value = 0.04179136 ,
769+ ChangeDateTime = "2023-07-28T19:52:26.793369Z"
770+ } ,
771+ new {
772+ Value = 0.13522345 ,
773+ ChangeDateTime = "2023-07-28T19:54:19.051669Z"
774+ } ,
775+ new {
776+ Value = 0.08536856 ,
777+ ChangeDateTime = "2023-07-28T19:56:04.287806Z"
778+ } ,
779+ new {
780+ Value = 0.05041369 ,
781+ ChangeDateTime = "2023-07-28T19:53:18.901696Z"
782+ } ,
783+ new {
784+ Value = 0.1627249 ,
785+ ChangeDateTime = "2023-07-28T19:55:13.160235Z"
786+ } ,
787+ new {
788+ Value = 0.05 ,
789+ ChangeDateTime = "2023-07-28T19:54:03.2197Z"
790+ } ,
791+ new {
792+ Value = 0.05 ,
793+ ChangeDateTime = "2023-07-28T19:56:00.802023Z"
794+ } ,
795+ new {
796+ Value = 0.02792705297470093 ,
797+ ChangeDateTime = "2023-07-28T20:49:03.6825337Z"
798+ }
799+ } . ToList ( ) ;
800+
801+ var result = await re . ExecuteAllRulesAsync ( "MyWorkflow" , new RuleParameter ( "input1" , input1 ) ) ;
802+
803+ Assert . NotNull ( result ) ;
804+ Assert . False ( result [ 0 ] . IsSuccess ) ;
805+ Assert . True ( result [ 1 ] . IsSuccess ) ;
806+ }
807+
808+
535809
536810 [ Fact ]
537811 public async Task ExecuteRule_RuntimeError_ShouldReturnAsErrorMessage ( )
@@ -768,6 +1042,10 @@ public void ContainsWorkFlowName_ShouldReturn()
7681042 Assert . False ( re . ContainsWorkflow ( NotExistedWorkflowName ) ) ;
7691043 }
7701044
1045+
1046+
1047+
1048+
7711049 [ Theory ]
7721050 [ InlineData ( typeof ( RulesEngine ) , typeof ( IRulesEngine ) ) ]
7731051 public void Class_PublicMethods_ArePartOfInterface ( Type classType , Type interfaceType )
0 commit comments