@ -28,6 +28,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Prob) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  const &  regionSettings  =  storm : : settings : : getModule < storm : : settings : : modules : : RegionSettings > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    storm : : modelchecker : : region : : SparseRegionModelCheckerSettings  settings ( regionSettings . getSampleMode ( ) ,  regionSettings . getApproxMode ( ) ,  regionSettings . getSmtMode ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //start testing
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.7<=pL<=0.9,0.75<=pK<=0.95 " ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -53,7 +54,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Prob) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //test approximative method
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : INSTANTIATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : TESTFIRST ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : OFF ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( settings . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( settings . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( settings . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -71,6 +72,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Prob) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : OFF ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( settings . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( settings . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( settings . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -95,7 +97,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  const &  regionSettings  =  storm : : settings : : getModule < storm : : settings : : modules : : RegionSettings > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    storm : : modelchecker : : region : : SparseRegionModelCheckerSettings  settings ( regionSettings . getSampleMode ( ) ,  regionSettings . getApproxMode ( ) ,  regionSettings . getSmtMode ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //start testing
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.7<=pK<=0.875,0.75<=TOMsg<=0.95 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  exBothRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.6<=pK<=0.9,0.5<=TOMsg<=0.95 " ) ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -125,7 +127,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //test approximative method
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : INSTANTIATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : TESTFIRST ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : OFF ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -149,6 +151,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allVioRegionSmt = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.1<=pK<=0.3,0.2<=TOMsg<=0.3 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : OFF ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -165,7 +168,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  exBothHardRegionSmtApp = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.5<=pK<=0.75,0.3<=TOMsg<=0.4 " ) ;  //this region has a local maximum!
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : TESTFIRST ,  storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -186,7 +189,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew_Infty) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  const &  regionSettings  =  storm : : settings : : getModule < storm : : settings : : modules : : RegionSettings > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    storm : : modelchecker : : region : : SparseRegionModelCheckerSettings  settings ( regionSettings . getSampleMode ( ) ,  regionSettings . getApproxMode ( ) ,  regionSettings . getSmtMode ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //start testing
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -206,6 +209,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew_Infty) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegionSmt = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : OFF ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -227,7 +231,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew_4Par) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  const &  regionSettings  =  storm : : settings : : getModule < storm : : settings : : modules : : RegionSettings > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    storm : : modelchecker : : region : : SparseRegionModelCheckerSettings  settings ( regionSettings . getSampleMode ( ) ,  regionSettings . getApproxMode ( ) ,  regionSettings . getSmtMode ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //start testing
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.7<=pK<=0.9,0.6<=pL<=0.85,0.9<=TOMsg<=0.95,0.85<=TOAck<=0.9 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  exBothRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.1<=pK<=0.7,0.2<=pL<=0.8,0.15<=TOMsg<=0.65,0.3<=TOAck<=0.9 " ) ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -262,6 +266,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Brp_Rew_4Par) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allVioRegionSmt = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.1<=pK<=0.4,0.2<=pL<=0.3,0.15<=TOMsg<=0.3,0.1<=TOAck<=0.2 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : OFF ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -287,7 +292,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  const &  regionSettings  =  storm : : settings : : getModule < storm : : settings : : modules : : RegionSettings > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    storm : : modelchecker : : region : : SparseRegionModelCheckerSettings  settings ( regionSettings . getSampleMode ( ) ,  regionSettings . getApproxMode ( ) ,  regionSettings . getSmtMode ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //start testing
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.1<=PF<=0.75,0.15<=badC<=0.2 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  exBothRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.75<=PF<=0.8,0.2<=badC<=0.3 " ) ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -336,6 +341,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allVioHardRegionSmt = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.8<=PF<=0.95,0.2<=badC<=0.9 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : OFF ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -352,6 +358,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allVioHardRegionSmtApp = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.8<=PF<=0.95,0.2<=badC<=0.9 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : TESTFIRST ,  storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -372,7 +379,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob_1Par) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  const &  regionSettings  =  storm : : settings : : getModule < storm : : settings : : modules : : RegionSettings > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    storm : : modelchecker : : region : : SparseRegionModelCheckerSettings  settings ( regionSettings . getSampleMode ( ) ,  regionSettings . getApproxMode ( ) ,  regionSettings . getSmtMode ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //start testing
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.9<=PF<=0.99 " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  exBothRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " 0.8<=PF<=0.9 " ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -393,6 +400,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob_1Par) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //test approximative method
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : INSTANTIATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : TESTFIRST ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : OFF ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -433,7 +441,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob_Const) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  const &  regionSettings  =  storm : : settings : : getModule < storm : : settings : : modules : : RegionSettings > ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    storm : : modelchecker : : region : : SparseRegionModelCheckerSettings  settings ( regionSettings . getSampleMode ( ) ,  regionSettings . getApproxMode ( ) ,  regionSettings . getSmtMode ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //start testing
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegion = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					     
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -447,6 +455,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob_Const) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //test approximative method
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : INSTANTIATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : TESTFIRST ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : OFF ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -457,6 +466,7 @@ TEST(SparseDtmcRegionModelCheckerTest, Crowds_Prob_Const) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    auto  allSatRegionSmt = storm : : modelchecker : : region : : ParameterRegion < storm : : RationalFunction > : : parseRegion ( " " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    settings  =  storm : : modelchecker : : region : : SparseRegionModelCheckerSettings ( storm : : settings : : modules : : RegionSettings : : SampleMode : : EVALUATE ,  storm : : settings : : modules : : RegionSettings : : ApproxMode : : OFF ,   storm : : settings : : modules : : RegionSettings : : SmtMode : : FUNCTION ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker  =  std : : make_shared < storm : : modelchecker : : region : : SparseDtmcRegionModelChecker < storm : : models : : sparse : : Dtmc < storm : : RationalFunction > ,  double > > ( model ,  settings ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    dtmcModelchecker - > specifyFormula ( formulas [ 0 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_FALSE ( dtmcModelchecker - > getSettings ( ) . doApprox ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSample ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ASSERT_TRUE ( dtmcModelchecker - > getSettings ( ) . doSmt ( ) ) ;