@@ -448,6 +448,34 @@ def test_update_processes(self, no_init_model, model):
448
448
)
449
449
assert m == model
450
450
451
+ def test_update_processes_strict_check (self ):
452
+ m = xs .Model ({}, strict_order_check = True )
453
+ assert m .update_processes ({})._strict_order_check == True
454
+ assert (
455
+ m .update_processes ({}, strict_order_check = False )._strict_order_check
456
+ == False
457
+ )
458
+
459
+ def test_update_processes_custom (self ):
460
+ @xs .process
461
+ class A :
462
+ pass
463
+
464
+ @xs .process
465
+ class B :
466
+ pass
467
+
468
+ @xs .process
469
+ class C :
470
+ pass
471
+
472
+ ma = xs .Model ({"a" : A })
473
+ mab = xs .Model ({"a" : A , "b" : B }, custom_dependencies = {"b" : "a" })
474
+ mabc = xs .Model ({"a" : A , "b" : B , "c" : C }, custom_dependencies = {"b" : {"a" , "c" }})
475
+
476
+ assert ma .update_processes ({"b" : B }, custom_dependencies = {"b" : "a" }) == mab
477
+ assert mab .update_processes ({"c" : C }, custom_dependencies = {"b" : "c" }) == mabc
478
+
451
479
@pytest .mark .parametrize ("p_names" , ["add" , ["add" ]])
452
480
def test_drop_processes (self , no_init_model , simple_model , p_names ):
453
481
m = no_init_model .drop_processes (p_names )
@@ -470,12 +498,16 @@ class C:
470
498
class D :
471
499
pass
472
500
501
+ @xs .process
502
+ class E :
503
+ pass
504
+
473
505
model = xs .Model (
474
- {"a" : A , "b" : B , "c" : C , "d" : D },
475
- custom_dependencies = {"d" : "c" , "c" : "b" , "b" : "a" },
506
+ {"a" : A , "b" : B , "c" : C , "d" : D , "e" : E },
507
+ custom_dependencies = {"d" : "c" , "c" : "b" , "b" : { "a" , "e" } },
476
508
)
477
509
model = model .drop_processes (["b" , "c" ])
478
- assert model .dependent_processes ["d" ] == [ "a" ]
510
+ assert set ( model .dependent_processes ["d" ]) == { "a" , "e" }
479
511
480
512
def test_visualize (self , model ):
481
513
pytest .importorskip ("graphviz" )
0 commit comments