2 changed files with 53 additions and 0 deletions
			
			
		| @ -0,0 +1,36 @@ | |||
| import stormpy | |||
| import stormpy.examples | |||
| import stormpy.examples.files | |||
| 
 | |||
| class TestBuilding: | |||
|     def test_explicit_builder(self): | |||
|         path = stormpy.examples.files.prism_dtmc_die | |||
|         prism_program = stormpy.parse_prism_program(path) | |||
|         formula_str = "P=? [F s=7 & d=2]" | |||
|         properties = stormpy.parse_properties_for_prism_program(formula_str, prism_program) | |||
| 
 | |||
|         # Fix variables in the program. | |||
|         module = prism_program.modules[0] | |||
|         s_var = module.get_integer_variable("s").expression_variable | |||
|         d_var = module.get_integer_variable("d").expression_variable | |||
| 
 | |||
|         # Construct the model | |||
|         options = stormpy.BuilderOptions([p.raw_formula for p in properties]) | |||
|         options.set_build_state_valuations() | |||
|         model_builder = stormpy.make_sparse_model_builder(prism_program, options) | |||
|         model = model_builder.build() | |||
|         # and export the model from building | |||
|         state_mapping = model_builder.export_lookup() | |||
| 
 | |||
|         #lookup 1 | |||
|         state = { s_var : prism_program.expression_manager.create_integer(3), d_var : prism_program.expression_manager.create_integer(0)} | |||
|         id = state_mapping.lookup(state) | |||
|         assert model.state_valuations.get_integer_value(id, s_var) == 3 | |||
|         assert model.state_valuations.get_integer_value(id, d_var) == 0 | |||
| 
 | |||
|         #lookup 2 | |||
|         state = { s_var : prism_program.expression_manager.create_integer(7), d_var : prism_program.expression_manager.create_integer(3)} | |||
|         id = state_mapping.lookup(state) | |||
|         assert model.state_valuations.get_integer_value(id, s_var) == 7 | |||
|         assert model.state_valuations.get_integer_value(id, d_var) == 3 | |||
| 
 | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue