def test_timezone_maccor(self): raw_cycler_run = RawCyclerRun.from_maccor_file( self.maccor_file_timezone, include_eis=False) # Simple test of whether or not correct number of columns is parsed for data/metadata self.assertEqual( set(raw_cycler_run.metadata.keys()), { "barcode", "_today_datetime", "start_datetime", "filename", "protocol", "channel_id" }) self.assertEqual(10, raw_cycler_run.metadata['channel_id']) # self.assertIsNotNone(raw_cycler_run.eis) # Test filename recognition raw_cycler_run = RawCyclerRun.from_file(self.maccor_file) self.assertEqual( set(raw_cycler_run.metadata.keys()), { "barcode", "_today_datetime", "start_datetime", "filename", "protocol", "channel_id" }) # Quick test to see whether columns get recasted self.assertTrue({ "data_point", "cycle_index", "step_index", "voltage", "temperature", "current", "charge_capacity", "discharge_capacity" } < set(raw_cycler_run.data.columns))
def test_interpolated_cycles_dtypes(self): cycler_run = RawCyclerRun.from_file(self.arbin_file) all_interpolated = cycler_run.get_interpolated_cycles() cycles_interpolated_dyptes = all_interpolated.dtypes.tolist() cycles_interpolated_columns = all_interpolated.columns.tolist() cycles_interpolated_dyptes = [ str(dtyp) for dtyp in cycles_interpolated_dyptes ] for indx, col in enumerate(cycles_interpolated_columns): self.assertEqual( cycles_interpolated_dyptes[indx], STRUCTURE_DTYPES["cycles_interpolated"][col], ) cycler_run = RawCyclerRun.from_maccor_file( self.maccor_file_w_diagnostics, include_eis=False) all_interpolated = cycler_run.get_interpolated_cycles() cycles_interpolated_dyptes = all_interpolated.dtypes.tolist() cycles_interpolated_columns = all_interpolated.columns.tolist() cycles_interpolated_dyptes = [ str(dtyp) for dtyp in cycles_interpolated_dyptes ] for indx, col in enumerate(cycles_interpolated_columns): self.assertEqual( cycles_interpolated_dyptes[indx], STRUCTURE_DTYPES["cycles_interpolated"][col], )
def test_quantity_sum_maccor(self): raw_cycler_run = RawCyclerRun.from_maccor_file(self.maccor_file_w_diagnostics, include_eis=False) cycle_sign = np.sign(np.diff(raw_cycler_run.data['cycle_index'])) capacity_sign = np.sign(np.diff(raw_cycler_run.data['charge_capacity'])) self.assertTrue(np.all(capacity_sign >= -cycle_sign)) # Capacity increases throughout cycle capacity_sign = np.sign(np.diff(raw_cycler_run.data['discharge_capacity'])) self.assertTrue(np.all(capacity_sign >= -cycle_sign)) # Capacity increases throughout cycle
def test_summary_dtypes(self): cycler_run = RawCyclerRun.from_file(self.arbin_file) all_summary = cycler_run.get_summary() reg_dyptes = all_summary.dtypes.tolist() reg_columns = all_summary.columns.tolist() reg_dyptes = [str(dtyp) for dtyp in reg_dyptes] for indx, col in enumerate(reg_columns): self.assertEqual(reg_dyptes[indx], STRUCTURE_DTYPES['summary'][col]) cycler_run = RawCyclerRun.from_maccor_file(self.maccor_file_w_diagnostics, include_eis=False) all_summary = cycler_run.get_summary() reg_dyptes = all_summary.dtypes.tolist() reg_columns = all_summary.columns.tolist() reg_dyptes = [str(dtyp) for dtyp in reg_dyptes] for indx, col in enumerate(reg_columns): self.assertEqual(reg_dyptes[indx], STRUCTURE_DTYPES['summary'][col])