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.
		
		
		
		
		
			
		
			
				
					
					
						
							77 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							77 lines
						
					
					
						
							2.8 KiB
						
					
					
				| /* | |
|  * ReadTraFileTest.cpp | |
|  * | |
|  *  Created on: 16.08.2012 | |
|  *      Author: Thomas Heinemann | |
|  */ | |
| 
 | |
| #include "gtest/gtest.h" | |
| #include "storm-config.h" | |
| #include "src/storage/SparseMatrix.h" | |
| #include "src/parser/DeterministicSparseTransitionParser.h" | |
| #include "src/exceptions/FileIoException.h" | |
| #include "src/exceptions/WrongFormatException.h" | |
|  | |
| TEST(ReadTraFileTest, NonExistingFileTest) { | |
|    //No matter what happens, please don't create a file with the name "nonExistingFile.not"! :-) | |
|    ASSERT_THROW(storm::parser::DeterministicSparseTransitionParser(STORM_CPP_TESTS_BASE_PATH "/nonExistingFile.not"), storm::exceptions::FileIoException); | |
| } | |
| 
 | |
| /* The following test case is based on one of the original MRMC test cases | |
|  */ | |
| TEST(ReadTraFileTest, ParseFileTest1) { | |
| 	storm::storage::SparseMatrix<double> result = storm::parser::DeterministicSparseTransitionParser(STORM_CPP_TESTS_BASE_PATH "/functional/parser/tra_files/csl_general_input_01.tra"); | |
| 
 | |
| 	double val = 0.0; | |
| 	ASSERT_TRUE(result.getValue(0, 0, &val)); | |
| 	ASSERT_EQ(val, 0.0); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(0, 1, &val)); | |
| 	ASSERT_EQ(val, 1.0); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(1, 1, &val)); | |
| 	ASSERT_EQ(val, 0.080645161290322580645161290322581); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(1, 2, &val)); | |
| 	ASSERT_EQ(val, 0.080645161290322580645161290322581); | |
| 
 | |
| 	//Transition 1->3 was not set in the file, so it is not to appear in the matrix! | |
| 	ASSERT_FALSE(result.getValue(1, 3, &val)); | |
| 	ASSERT_EQ(val, 0); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(2, 1, &val)); | |
| 	ASSERT_EQ(val, 0.04032258064516129032258064516129); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(2, 2, &val)); | |
| 	ASSERT_EQ(val, 0.04032258064516129032258064516129); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(2, 3, &val)); | |
| 	ASSERT_EQ(val, 0.04032258064516129032258064516129); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(2, 4, &val)); | |
| 	ASSERT_EQ(val, 0.04032258064516129032258064516129); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(3, 2, &val)); | |
| 	ASSERT_EQ(val, 0.0806451612903225806451612903225812); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(3, 3, &val)); | |
| 	ASSERT_EQ(val, 0.0); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(3, 4, &val)); | |
| 	ASSERT_EQ(val, 0.080645161290322580645161290322581); | |
| 
 | |
| 	ASSERT_TRUE(result.getValue(4, 4, &val)); | |
| 	ASSERT_EQ(val, 0.0); | |
| } | |
| 
 | |
| TEST(ReadTraFileTest, WrongFormatTestHeader1) { | |
|    ASSERT_THROW(storm::parser::DeterministicSparseTransitionParser(STORM_CPP_TESTS_BASE_PATH "/functional/parser/tra_files/wrong_format_header1.tra"), storm::exceptions::WrongFormatException); | |
| } | |
| 
 | |
| TEST(ReadTraFileTest, WrongFormatTestHeader2) { | |
|    ASSERT_THROW(storm::parser::DeterministicSparseTransitionParser(STORM_CPP_TESTS_BASE_PATH "/functional/parser/tra_files/wrong_format_header2.tra"), storm::exceptions::WrongFormatException); | |
| } | |
| 
 | |
| TEST(ReadTraFileTest, WrongFormatTestTransition) { | |
|    ASSERT_THROW(storm::parser::DeterministicSparseTransitionParser(STORM_CPP_TESTS_BASE_PATH "/functional/parser/tra_files/wrong_format_transition.tra"), storm::exceptions::WrongFormatException); | |
| }
 |