You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							1.6 KiB
						
					
					
				| 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 | |
| 
 |