@@ -877,6 +877,16 @@ def test_flatten_timepoint_specific_output_overrides():
877877 """Test flatten_timepoint_specific_output_overrides"""
878878 problem = Problem ()
879879 problem .model = SbmlModel .from_antimony ("""x = 1""" )
880+ for par_id in (
881+ "noiseParOverride1" ,
882+ "noiseParOverride2" ,
883+ "obsParOverride1" ,
884+ "obsParOverride2" ,
885+ ):
886+ problem .add_parameter (par_id , estimate = False , nominal_value = 1 )
887+
888+ problem_expected = copy .deepcopy (problem )
889+
880890 problem .add_observable (
881891 "obs1" ,
882892 formula = "observableParameter1_obs1 + observableParameter2_obs1" ,
@@ -894,63 +904,29 @@ def test_flatten_timepoint_specific_output_overrides():
894904
895905 # new observable IDs
896906 # (obs${i_obs}_${i_obsParOverride}_${i_noiseParOverride})
897- obs1_1_1_1 = "obs1__obsParOverride1_1_00000000000000__noiseParOverride1"
898- obs1_2_1_1 = "obs1__obsParOverride2_1_00000000000000__noiseParOverride1"
899- obs1_2_2_1 = "obs1__obsParOverride2_1_00000000000000__noiseParOverride2"
900- problem_expected = Problem ()
901- problem_expected .model = SbmlModel .from_antimony ("""x = 1""" )
907+ obs1_1_1 = "obs1__obsParOverride1_1_00000000000000__noiseParOverride1"
908+ obs1_2_1 = "obs1__obsParOverride2_1_00000000000000__noiseParOverride1"
909+ obs1_2_2 = "obs1__obsParOverride2_1_00000000000000__noiseParOverride2"
910+
911+ for obs_id in (obs1_1_1 , obs1_2_1 , obs1_2_2 ):
912+ problem_expected .add_observable (
913+ obs_id ,
914+ formula = (
915+ f"observableParameter1_{ obs_id } "
916+ f"+ observableParameter2_{ obs_id } "
917+ ),
918+ noise_formula = (
919+ f"(observableParameter1_{ obs_id } + "
920+ f"observableParameter2_{ obs_id } ) "
921+ f"* noiseParameter1_{ obs_id } "
922+ ),
923+ observable_placeholders = [
924+ f"observableParameter1_{ obs_id } " ,
925+ f"observableParameter2_{ obs_id } " ,
926+ ],
927+ noise_placeholders = [f"noiseParameter1_{ obs_id } " ],
928+ )
902929
903- problem_expected .add_observable (
904- obs1_1_1_1 ,
905- formula = (
906- f"observableParameter1_{ obs1_1_1_1 } "
907- f"+ observableParameter2_{ obs1_1_1_1 } "
908- ),
909- noise_formula = (
910- f"(observableParameter1_{ obs1_1_1_1 } + "
911- f"observableParameter2_{ obs1_1_1_1 } ) "
912- f"* noiseParameter1_{ obs1_1_1_1 } "
913- ),
914- observable_placeholders = [
915- f"observableParameter1_{ obs1_1_1_1 } " ,
916- f"observableParameter2_{ obs1_1_1_1 } " ,
917- ],
918- noise_placeholders = [f"noiseParameter1_{ obs1_1_1_1 } " ],
919- )
920- problem_expected .add_observable (
921- obs1_2_1_1 ,
922- formula = (
923- f"observableParameter1_{ obs1_2_1_1 } "
924- f"+ observableParameter2_{ obs1_2_1_1 } "
925- ),
926- noise_formula = (
927- f"(observableParameter1_{ obs1_2_1_1 } "
928- f"+ observableParameter2_{ obs1_2_1_1 } ) * "
929- f"noiseParameter1_{ obs1_2_1_1 } "
930- ),
931- observable_placeholders = [
932- f"observableParameter1_{ obs1_2_1_1 } " ,
933- f"observableParameter2_{ obs1_2_1_1 } " ,
934- ],
935- noise_placeholders = [f"noiseParameter1_{ obs1_2_1_1 } " ],
936- )
937- problem_expected .add_observable (
938- obs1_2_2_1 ,
939- formula = (
940- f"observableParameter1_{ obs1_2_2_1 } "
941- f"+ observableParameter2_{ obs1_2_2_1 } "
942- ),
943- noise_formula = (
944- f"(observableParameter1_{ obs1_2_2_1 } "
945- f"+ observableParameter2_{ obs1_2_2_1 } ) "
946- f"* noiseParameter1_{ obs1_2_2_1 } "
947- ),
948- observable_placeholders = [
949- f"observableParameter1_{ obs1_2_2_1 } " ,
950- f"observableParameter2_{ obs1_2_2_1 } " ,
951- ],
952- noise_placeholders = [f"noiseParameter1_{ obs1_2_2_1 } " ],
953- )
954930 problem_expected .add_observable (
955931 "obs2" ,
956932 formula = "x" ,
@@ -989,41 +965,35 @@ def test_flatten_timepoint_specific_output_overrides():
989965 problem .add_measurement (obs_id = "obs2" , time = 3.0 , measurement = 0.1 )
990966
991967 problem_expected .add_measurement (
992- obs_id = obs1_1_1_1 ,
968+ obs_id = obs1_1_1 ,
993969 time = 1.0 ,
994970 measurement = 0.1 ,
995971 observable_parameters = ["obsParOverride1" , "1.0" ],
996972 noise_parameters = ["noiseParOverride1" ],
997973 )
998974 problem_expected .add_measurement (
999- obs_id = obs1_2_1_1 ,
975+ obs_id = obs1_2_1 ,
1000976 time = 1.0 ,
1001977 measurement = 0.1 ,
1002978 observable_parameters = ["obsParOverride2" , "1.0" ],
1003979 noise_parameters = ["noiseParOverride1" ],
1004980 )
1005981 problem_expected .add_measurement (
1006- obs_id = obs1_2_2_1 ,
982+ obs_id = obs1_2_2 ,
1007983 time = 2.0 ,
1008984 measurement = 0.1 ,
1009985 observable_parameters = ["obsParOverride2" , "1.0" ],
1010986 noise_parameters = ["noiseParOverride2" ],
1011987 )
1012988 problem_expected .add_measurement (
1013- obs_id = obs1_2_2_1 ,
989+ obs_id = obs1_2_2 ,
1014990 time = 2.0 ,
1015991 measurement = 0.1 ,
1016992 observable_parameters = ["obsParOverride2" , "1.0" ],
1017993 noise_parameters = ["noiseParOverride2" ],
1018994 )
1019995 problem_expected .add_measurement (obs_id = "obs2" , time = 3.0 , measurement = 0.1 )
1020996
1021- for p in (problem , problem_expected ):
1022- p .add_parameter ("noiseParOverride1" , estimate = False , nominal_value = 1 )
1023- p .add_parameter ("noiseParOverride2" , estimate = False , nominal_value = 1 )
1024- p .add_parameter ("obsParOverride1" , estimate = False , nominal_value = 1 )
1025- p .add_parameter ("obsParOverride2" , estimate = False , nominal_value = 1 )
1026-
1027997 problem .assert_valid ()
1028998 unflattened_problem = copy .deepcopy (problem )
1029999 problem_expected .assert_valid ()
0 commit comments