| 
					
					
					
				 | 
				@ -1,8 +1,5 @@ | 
			
		
		
	
		
			
				 | 
				 | 
				import stormpy | 
				 | 
				 | 
				import stormpy | 
			
		
		
	
		
			
				 | 
				 | 
				import numpy as np | 
				 | 
				 | 
				import numpy as np | 
			
		
		
	
		
			
				 | 
				 | 
				from helpers.helper import get_example_path | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				import math | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				class TestMatrixBuilder: | 
				 | 
				 | 
				class TestMatrixBuilder: | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -16,18 +13,16 @@ class TestMatrixBuilder: | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5 = stormpy.SparseMatrixBuilder(5, 5, force_dimensions=False) | 
				 | 
				 | 
				        builder_5x5 = stormpy.SparseMatrixBuilder(5, 5, force_dimensions=False) | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5.add_next_value(0, 0, 0) | 
				 | 
				 | 
				        builder_5x5.add_next_value(0, 0, 0) | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5.add_next_value(0, 2, 1) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5.add_next_value(2, 0, 4) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5.add_next_value(2, 3, 5) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder_5x5.add_next_value(0, 1, 0.1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder_5x5.add_next_value(2, 2, 22) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder_5x5.add_next_value(2, 3, 23) | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        assert builder_5x5.get_last_column() == 3 | 
				 | 
				 | 
				        assert builder_5x5.get_last_column() == 3 | 
			
		
		
	
		
			
				 | 
				 | 
				        assert builder_5x5.get_last_row() == 2 | 
				 | 
				 | 
				        assert builder_5x5.get_last_row() == 2 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5.add_next_value(3, 1, 0.5) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5.add_next_value(3, 3, 0) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        builder_5x5.add_next_value(4, 4, 0.2) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder_5x5.add_next_value(3, 2, 32) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder_5x5.add_next_value(3, 4, 34) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder_5x5.add_next_value(4, 3, 43) | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        matrix_5x5 = builder_5x5.build() | 
				 | 
				 | 
				        matrix_5x5 = builder_5x5.build() | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -35,8 +30,35 @@ class TestMatrixBuilder: | 
			
		
		
	
		
			
				 | 
				 | 
				        assert matrix_5x5.nr_rows == 5 | 
				 | 
				 | 
				        assert matrix_5x5.nr_rows == 5 | 
			
		
		
	
		
			
				 | 
				 | 
				        assert matrix_5x5.nr_entries == 7 | 
				 | 
				 | 
				        assert matrix_5x5.nr_entries == 7 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        # todo test Replace columns | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        # builder_5x5.replace_columns... | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        for e in matrix_5x5: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            assert (e.value() == 0.1 and e.column == 1) or e.value() == 0 or (e.value() > 20 and e.column > 1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    def test_matrix_replace_columns(self): | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder = stormpy.SparseMatrixBuilder(3, 4, force_dimensions=False) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(0, 0, 0) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(0, 1, 1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(0, 2, 2) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(0, 3, 3) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(1, 1, 1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(1, 2, 2) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(1, 3, 3) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(2, 1, 1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(2, 2, 2) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.add_next_value(2, 3, 3) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        # replace rows | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        builder.replace_columns([3, 2, 1], 1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        matrix = builder.build() | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        assert matrix.nr_entries == 10 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        # Check if columns where replaced | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        for e in matrix: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            assert (e.value() == 0 and e.column == 0) or (e.value() == 3 and e.column == 1) or ( | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                        e.value() == 2 and e.column == 2) or (e.value() == 1 and e.column == 3) | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				    def test_matrix_builder_row_grouping(self): | 
				 | 
				 | 
				    def test_matrix_builder_row_grouping(self): | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |