@@ -38,6 +38,7 @@ itkScancoImageIOTest3(int argc, char * argv[])
3838 }
3939 const std::string inputFileName = argv[1 ];
4040 const std::string outputFileName = argv[2 ];
41+ const std::string versionString = (argc > 4 ) ? argv[4 ] : " AIMDATA_V020 " ;
4142
4243 // ATTENTION THIS IS THE PIXEL TYPE FOR
4344 // THE RESULTING IMAGE
@@ -65,7 +66,7 @@ itkScancoImageIOTest3(int argc, char * argv[])
6566 ImageType::Pointer image = reader->GetOutput ();
6667
6768 std::cout << " Version: \t\t " << scancoIO->GetVersion () << std::endl;
68- ITK_TEST_EXPECT_EQUAL (scancoIO->GetVersion (), std::string ( " AIMDATA_V020 " ) );
69+ ITK_TEST_EXPECT_EQUAL (scancoIO->GetVersion (), versionString );
6970 std::cout << " PatientIndex: \t " << scancoIO->GetPatientIndex () << std::endl;
7071 ITK_TEST_EXPECT_EQUAL (scancoIO->GetPatientIndex (), 2573 );
7172 std::cout << " ScannerID: \t\t " << scancoIO->GetScannerID () << std::endl;
@@ -77,9 +78,19 @@ itkScancoImageIOTest3(int argc, char * argv[])
7778 std::cout << " StartPosition: \t " << scancoIO->GetStartPosition () << std::endl;
7879 ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetStartPosition (), 114.845 , 6 , 1e-3 ));
7980 std::cout << " DataRange[0]: \t " << scancoIO->GetDataRange ()[0 ] << std::endl;
80- ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetDataRange ()[0 ], -2478.0 , 6 , 1e-3 ));
8181 std::cout << " DataRange[1]: \t " << scancoIO->GetDataRange ()[1 ] << std::endl;
82- ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetDataRange ()[1 ], 11662.0 , 6 , 1e-3 ));
82+
83+ if (scancoIO->GetComponentType () == itk::ImageIOBase::FLOAT)
84+ {
85+ ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetDataRange ()[0 ], -1380.0 , 6 , 1e-3 ));
86+ ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetDataRange ()[1 ], 8823.0 , 6 , 1e-3 ));
87+ }
88+ else
89+ {
90+ ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetDataRange ()[0 ], -2478.0 , 6 , 1e-3 ));
91+ ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetDataRange ()[1 ], 11662.0 , 6 , 1e-3 ));
92+ }
93+
8394 std::cout << " MuScaling: \t\t " << scancoIO->GetMuScaling () << std::endl;
8495 ITK_TEST_EXPECT_TRUE (itk::Math::FloatAlmostEqual (scancoIO->GetMuScaling (), 8192.0 , 6 , 1e-3 ));
8596 std::cout << " MuWater: \t\t " << scancoIO->GetMuWater () << std::endl;
@@ -122,9 +133,8 @@ itkScancoImageIOTest3(int argc, char * argv[])
122133 // Generate test image
123134 using WriterType = itk::ImageFileWriter<ImageType>;
124135 WriterType::Pointer writer = WriterType::New ();
125- if (argc > 3 )
136+ if (argc > 3 && std::stoi (argv[ 3 ]) == 1 ) // Explicitly use scancoIO
126137 {
127- // AIM writing is not currently supported
128138 ITK_TEST_EXPECT_TRUE (scancoIO->CanWriteFile (outputFileName.c_str ()));
129139
130140 ITK_TEST_EXPECT_TRUE (!scancoIO->CanWriteFile ((outputFileName + " .exe" ).c_str ()));
0 commit comments