def __dummy_data_set(period, sample_rate, width, resolution): time_data = TestProcessSawtooth2D.__dummy_time_data(period, sample_rate) set_array = DataArray('ScopeTime', 'Time', unit='seconds', is_setpoint=True, preset_data=time_data) scope_data_1 = TestProcessSawtooth2D.__dummy_scope_data(time_data, resolution[0], period, width[0]) data_array_1 = TestProcessSawtooth2D.__dummy_data_array(set_array, scope_data_1, channel_index=1, trace_number=1) scope_data_2 = TestProcessSawtooth2D.__dummy_scope_data(time_data, resolution[1], period, width[1]) data_array_2 = TestProcessSawtooth2D.__dummy_data_array(set_array, scope_data_2, channel_index=2, trace_number=2) data_set = DataSet() data_set.user_data = {'resolution': resolution, 'width': width} data_set.add_array(data_array_1) data_set.add_array(data_array_2) return data_set
def test_setters(self): data_set = DataSet() self.assertEqual('', data_set.name) self.assertIsInstance(data_set.time_stamp, datetime.datetime) self.assertIsNone(data_set.user_data) self.assertEqual("", data_set.default_array_name) data_set.name = 'TheName' data_set.time_stamp = datetime.datetime(2018, 12, 24, 18) data_set.user_data = {'Data': 'stuff'} data_set.default_array_name = 'TheDefault' self.assertEqual('TheName', data_set.name) self.assertEqual(datetime.datetime(2018, 12, 24, 18), data_set.time_stamp) self.assertDictEqual({'Data': 'stuff'}, data_set.user_data) self.assertEqual("TheDefault", data_set.default_array_name)
def test_save_to_storage(self): data_set = DataSet() data_set.name = 'TheName' data_set.time_stamp = datetime.datetime(2018, 12, 24, 18) data_set.user_data = {'Data': 'stuff'} data_set.default_array_name = 'TheDefault' data_set.add_array(self.data_array) writer = MagicMock() data_set.add_storage_writer(writer) expected_calls = [ call.sync_metadata_to_storage('name', 'TheName'), call.sync_metadata_to_storage('time_stamp', datetime.datetime(2018, 12, 24, 18)), call.sync_metadata_to_storage('user_data', {'Data': 'stuff'}), call.sync_metadata_to_storage('default_array_name', 'TheDefault') ] writer.assert_has_calls(expected_calls) writer.sync_add_data_array_to_storage.assert_called()
def test_metadata_triggers_update(self): name = 'Bobo' user_data = PythonJsonStructure(data='plata', snapshot=False) timestamp = datetime.datetime(2019, 12, 24) default_array_name = 'ThatsAGoodName' io_reader, io_writer = MemoryDataSetIOFactory.get_reader_writer_pair() data_set_consumer = DataSet(storage_reader=io_reader) data_set_producer = DataSet(storage_writer=io_writer) data_set_producer.name = name data_set_producer.user_data = user_data data_set_producer.time_stamp = timestamp data_set_producer.default_array_name = default_array_name data_set_consumer.sync_from_storage(-1) self.assertEqual(name, data_set_consumer.name) self.assertDictEqual(user_data, data_set_consumer.user_data) self.assertEqual(timestamp, data_set_consumer.time_stamp) self.assertEqual(default_array_name, data_set_consumer.default_array_name)
trace_number: int = 1) -> DataArray: identifier = 'ScopeTrace_{:03d}'.format(trace_number) label = 'Channel_{}'.format(channel_index) scope_data = sawtooth(2 * np.pi * (sawteeth_count * time / period), width) offset = {'left': 1 - width, 'center': (1 - width / 2), 'right': 0} scope_data = np.roll(scope_data, int(offset[processing] * len(scope_data))) return DataArray(identifier, label, preset_data=scope_data, set_arrays=[set_array]) data_set = DataSet() data_set.user_data = { 'resolution': resolution, 'width': width, 'processing': processing } data_array_x = create_dummy_data_array(width=width[0], processing=processing, sawteeth_count=1, channel_index=1, trace_number=1) data_set.add_array(data_array_x) data_array_y = create_dummy_data_array(width=width[1], processing=processing, sawteeth_count=resolution[1], channel_index=2, trace_number=2)