def test_creationOfLastDirectoryOfPropertyOUT_DIR(self): self.reader = tools.Reader("lastOUT_DIRFolderWrongConfigFile.txt") self.assertTrue(os.path.isdir(self.reader.get("OUT_DIR"))) with self.assertRaises(tools.ReaderError) as error: tools.Reader("OUT_DIRWrongConfigFile.txt") self.assertEqual(error.exception.message, "OUT_DIR does not exist.")
def test_commentingWorks(self): with self.assertRaises(tools.ReaderError) as error: tools.Reader("emptyFile.txt") with self.assertRaises(tools.ReaderError) as sameError: tools.Reader("commentFile.txt") # Empty file is gives the same error as a commented legit file self.assertEqual(error.exception.message, sameError.exception.message) self.assertEqual(error.exception.expression, sameError.exception.expression)
def test_parameterExistence(self): # All parameters are declared for this file self.assertTrue( assertDoNotRaise(lambda x: tools.Reader(x), "correctConfigFile.txt")) self.configFile = open(self.configFile.name, 'a') self.configFile.write("\n") self.configFile.write("ABBBA = ABBBA\n") self.configFile.close() with self.assertRaises(tools.ReaderError) as error: tools.Reader("correctConfigFile.txt") self.assertEqual(error.exception.message, "Property is not poorly defined or not necessary") self.assertEqual(error.exception.expression, "ABBBA")
def test_correctDelimiter(self): with self.assertRaises(tools.ReaderError) as error: tools.Reader("doesExist.txt", "|") with self.assertRaises(tools.ReaderError) as notError: tools.Reader("doesExist.txt", "+") self.assertEqual( error.exception.message, "This symbol cannot serve as a delimiter for the Reader object") self.assertEqual(error.exception.expression, "|") self.assertNotEqual( notError.exception.message, "This symbol cannot serve as a delimiter for the Reader object") self.assertNotEqual(notError.exception.expression, "+")
def test_configFileExist(self): with self.assertRaises(tools.ReaderError) as error: tools.Reader("doesNotExist.txt") with self.assertRaises(tools.ReaderError) as notError: tools.Reader("doesExist.txt") self.assertEqual( error.exception.message, "Configuration file does not exist or wrongly specified") self.assertEqual(error.exception.expression, "doesNotExist.txt") self.assertNotEqual( notError.exception.message, "Configuration file does not exist or wrongly specified") self.assertNotEqual(notError.exception.expression, "doesExist.txt")
def test_parameterDeclaration(self): self.configFile = open(self.configFile.name, 'a') self.configFile.write("\n") self.configFile.write("\n") self.configFile.close() # Empty strings appended at the end are ignored and do not raise any errors self.assertTrue( assertDoNotRaise(lambda x: tools.Reader(x), "correctConfigFile.txt")) self.configFile = open(self.configFile.name, 'a') self.configFile.write("\n") self.configFile.write("ABBBA\n") self.configFile.close() with self.assertRaises(tools.ReaderError) as error: tools.Reader("correctConfigFile.txt") self.assertEqual(error.exception.message, "Line could not be read from file") self.assertEqual(error.exception.expression, "ABBBA")
def setUp(self): self.configFile = open("correctConfigFile.txt", 'w') self.configFile.write( "OUT_DIR = C:\\Users\yeves\\OneDrive - lafayette.edu\\School Documents\\Competition, Research Documents\\SummerResearch2020\\data\n" ) self.configFile.write( "BASE_DIR = C:\\Users\\yeves\\OneDrive - lafayette.edu\\School Documents\\Competition, Research Documents\\SummerResearch2020\\sample\n" ) self.configFile.write( "DATA_EMPTY = 135958\\Oscilloscope\\voltageDataScopeRun20210131135958(1)CollectionKind0.csv\n" ) self.configFile.write("DATA_ACTUAL = 140159\\Oscilloscope\n") self.configFile.write("DESCRIPTION = Empty Dirty Coil Form\n") self.configFile.write( "M_G_FACTOR_FILE = MCoil\\20200317110751gfactors.csv\n") self.configFile.write( "H_G_FACTOR_FILE = HCoil\\20200317110751gfactors.csv\n") self.configFile.write("CUTOFF_FREQ = 4000000\n") self.configFile.write("KNOWN_FREQ = 0\n") self.configFile.write("M_OVER_H_REAL_SUB = 0\n") self.configFile.write("M_OVER_H_IMAG_SUB = 0\n") self.configFile.write("M_OVER_H_CALIB = 0\n") self.configFile.write("PM_PH_DIFF_PHASE_ADJ = 0\n") self.configFile.write("M_OVER_H0_SUB = 0\n") self.configFile.write("H_PHASE_REAL_SUB = 0\n") self.configFile.write("H_PHASE_IMAG_SUB = 0\n") self.configFile.write("V_H_OFFSET = 30\n") self.configFile.write("NUM_PERIOD = 2\n") self.configFile.write("BEGIN_TIME = 0\n") self.configFile.write("POLARITY = 1.00\n") self.configFile.write("WITH_EMPTY = TRUE\n") self.configFile.write("NON_LINEAR_SUB = TRUE\n") self.configFile.write("TEMP_DIR = 140159\\Opsens\n") self.configFile.write("TIME_DIR = 140159\\Time\n") self.configFile.write("READ_TIME = TRUE\n") self.configFile.write("H_MIN = 20\n") self.configFile.write("H_MAX = 60\n") self.configFile.write( "LEGEND = TEMPERATURE | m_max | osc_time | run_num\n") self.configFile.write( "PLOT = H_INT_RECONSTRUCTED_REAL_LIST:M_INT_RECONSTRUCTED_REAL_LIST \n" ) self.configFile.write("PLOT_LABEL = H (kA/m):M (kA/m)\n") self.configFile.write( "PROPERTY_PLOT = TEMPERATURE:HC | INTEGRAL:HC | temperature:osc_time\n" ) self.configFile.write( "PROPERTY_PLOT_LABEL = Temperature(degC):Hc(T) | integral:Hc(T) | Temperature(degC):Time(sec)\n" ) self.configFile.close() self.configFile = open("correctAnotherConfigFile.txt", 'w') self.configFile.write( "OUT_DIR = C:\\Users\yeves\\OneDrive - lafayette.edu\\School Documents\\Competition, Research Documents\\SummerResearch2020\\data\n" ) self.configFile.write( "BASE_DIR = C:\\Users\\yeves\\OneDrive - lafayette.edu\\School Documents\\Competition, Research Documents\\SummerResearch2020\\sample\n" ) self.configFile.write( "DATA_EMPTY = 135958\\Oscilloscope\\voltageDataScopeRun20210131135958(1)CollectionKind0.csv\n" ) self.configFile.write("DATA_ACTUAL = 140159\\Oscilloscope\n") self.configFile.write("DESCRIPTION = Empty Dirty Coil Form\n") self.configFile.write( "M_G_FACTOR_FILE = MCoil\\20200317110751gfactors.csv\n") self.configFile.write( "H_G_FACTOR_FILE = HCoil\\20200317110751gfactors.csv\n") self.configFile.write("CUTOFF_FREQ = 4000000\n") self.configFile.write("KNOWN_FREQ = 0\n") self.configFile.write("M_OVER_H_REAL_SUB = 0\n") self.configFile.write("M_OVER_H_IMAG_SUB = 0\n") self.configFile.write("M_OVER_H_CALIB = 0\n") self.configFile.write("PM_PH_DIFF_PHASE_ADJ = 0\n") self.configFile.write("M_OVER_H0_SUB = 0\n") self.configFile.write("H_PHASE_REAL_SUB = 0\n") self.configFile.write("H_PHASE_IMAG_SUB = 0\n") self.configFile.write("V_H_OFFSET = 30\n") self.configFile.write("NUM_PERIOD = 2\n") self.configFile.write("BEGIN_TIME = 0\n") self.configFile.write("POLARITY = 1.00\n") self.configFile.write("WITH_EMPTY = TRUE\n") self.configFile.write("NON_LINEAR_SUB = TRUE\n") self.configFile.write("TEMP_DIR = 140159\\Opsens\n") self.configFile.write("TIME_DIR = 140159\\Time\n") self.configFile.write("READ_TIME = FALSE\n") self.configFile.write("H_MIN = 20\n") self.configFile.write("H_MAX = 60\n") self.configFile.write( "LEGEND = TEMPERATURE | m_max | osc_time | run_num\n") self.configFile.write( "PLOT = H_INT_RECONSTRUCTED_REAL_LIST:M_INT_RECONSTRUCTED_REAL_LIST \n" ) self.configFile.write("PLOT_LABEL = H (kA/m):M (kA/m)\n") self.configFile.write( "PROPERTY_PLOT = TEMPERATURE:HC | INTEGRAL:HC | temperature:osc_time\n" ) self.configFile.write( "PROPERTY_PLOT_LABEL = Temperature(degC):Hc(T) | integral:Hc(T) | Temperature(degC):Time(sec)\n" ) self.configFile.close() self.reader = tools.Reader("correctConfigFile.txt") self.anotherReader = tools.Reader("correctAnotherConfigFile.txt") self.readerOutput = open('expectedOutput.txt', 'w') self.readerOutput.write( "OUT_DIR = C:\\Users\\yeves\\OneDrive - lafayette.edu\\School Documents\\Competition, Research Documents\\SummerResearch2020\\data\n" ) self.readerOutput.write( "BASE_DIR = C:\\Users\\yeves\\OneDrive - lafayette.edu\\School Documents\\Competition, Research Documents\\SummerResearch2020\\sample\n" ) self.readerOutput.write( "M_G_FACTOR_FILE = MCoil\\20200317110751gfactors.csv\n") self.readerOutput.write( "H_G_FACTOR_FILE = HCoil\\20200317110751gfactors.csv\n") self.readerOutput.write( "DATA_EMPTY = 135958\\Oscilloscope\\voltageDataScopeRun20210131135958(1)CollectionKind0.csv\n" ) self.readerOutput.write("DATA_ACTUAL = 140159\\Oscilloscope\n") self.readerOutput.write("DESCRIPTION = Empty Dirty Coil Form\n") self.readerOutput.write("CUTOFF_FREQ = 4000000\n") self.readerOutput.write("KNOWN_FREQ = 0\n") self.readerOutput.write("M_OVER_H_REAL_SUB = 0\n") self.readerOutput.write("M_OVER_H_IMAG_SUB = 0\n") self.readerOutput.write("V_H_OFFSET = 30\n") self.readerOutput.write("M_OVER_H_CALIB = 0\n") self.readerOutput.write("PM_PH_DIFF_PHASE_ADJ = 0\n") self.readerOutput.write("M_OVER_H0_SUB = 0\n") self.readerOutput.write("NUM_PERIOD = 2\n") self.readerOutput.write("NON_LINEAR_SUB = True\n") self.readerOutput.write("H_PHASE_REAL_SUB = 0\n") self.readerOutput.write("H_PHASE_IMAG_SUB = 0\n") self.readerOutput.write("BEGIN_TIME = 0\n") self.readerOutput.write("WITH_EMPTY = True\n") self.readerOutput.write("TEMP_DIR = 140159\\Opsens\n") self.readerOutput.write("H_MIN = 20\n") self.readerOutput.write("POLARITY = 1.00\n") self.readerOutput.write("H_MAX = 60\n") self.readerOutput.write( "LEGEND = TEMPERATURE | m_max | osc_time | run_num\n") self.readerOutput.write( "PLOT = H_INT_RECONSTRUCTED_REAL_LIST:M_INT_RECONSTRUCTED_REAL_LIST\n" ) self.readerOutput.write("PLOT_LABEL = H (kA/m):M (kA/m)\n") self.readerOutput.write( "PROPERTY_PLOT = TEMPERATURE:HC | INTEGRAL:HC | temperature:osc_time\n" ) self.readerOutput.write( "PROPERTY_PLOT_LABEL = Temperature(degC):Hc(T) | integral:Hc(T) | Temperature(degC):Time(sec)\n" ) self.readerOutput.write("TIME_DIR = 140159\Time\n") self.readerOutput.write("READ_TIME = True\n") self.readerOutput.close()