def _msg(self, time, value): msg = paramsvalues_pb2.ParamValue() msg.param_no = 1 msg.time = time msg.int_value = value return msg
def test_processing_batch(self): temp_dir = tempfile.mkdtemp(suffix="meaner4_unit_test") path = os.path.join(temp_dir, "A/B/float/0000123457.sz4") spf = saveparam.SaveParam(param.from_node(self.float_node), temp_dir) msgs = [] for t, v in [(123456, spf.param.nan), (123457, 4.5), (123458, spf.param.nan), (123459, spf.param.nan), (123460, 5.0), (123461, 5.0)]: msg = paramsvalues_pb2.ParamValue() msg.param_no = 1 msg.time = t msg.is_nan = False msg.double_value = v msgs.append(msg) s_time = spf.process_msg_batch(msgs) self.assertEqual(s_time, 123461) self._check_size(path, 15) self._check_file(path, "<fBBBBBBfB", ( 4.5, 1, 0x00, 0x00, 0xc0, 0x7f, 2, 5.0, 1, )) shutil.rmtree(temp_dir)
def test_crosscast_types(self): from random import randint int_value = randint(1, 2000) float_value = randint(1, 2000) / 10.0 # prec 1 for i, n in enumerate(self.nodes): p = param.from_node(n) self.assertEqual(p.data_type, self.types[i]) self.assertEqual(p.value_format_string, self.formats[i]) self.assertEqual(p.value_lenght, self.val_lens[i]) self.assertEqual(p.time_prec, 4) self.assertEqual(p.written_to_base, True) self.assertTrue( p.value_from_binary(p.value_to_binary(int_value)) - self.val_cast[i](int_value) <= int_value * self.epsilons[i]) self.assertTrue( p.value_from_binary(p.value_to_binary(float_value)) - self.val_cast[i](float_value) <= int_value * self.epsilons[i]) msg = paramsvalues_pb2.ParamValue() msg.param_no = 100 msg.is_nan = False msg.time = 123456 setattr(msg, self.msg_attrs[i], self.values[i]) self.assertEqual(p.value_from_msg(msg), self.values[i])
def test_parsing_def(self): p = param.from_node(self.node_def) self.assertEqual(p.data_type, "short") self.assertEqual(p.value_format_string, "<h") self.assertEqual(p.value_lenght, 2) self.assertEqual(p.time_prec, 4) self.assertEqual(p.written_to_base, True) self.assertEqual(p.value_from_binary(p.value_to_binary(10)), 10) msg = paramsvalues_pb2.ParamValue() msg.param_no = 100; msg.time = 123456; msg.int_value = 10; self.assertEqual(p.value_from_msg(msg), 10)
def test_parsing2(self): for i, n in enumerate(self.nodes): p = param.from_node(n) self.assertEqual(p.data_type, self.types[i]) self.assertEqual(p.value_format_string, self.formats[i]) self.assertEqual(p.value_lenght, self.val_lens[i]) self.assertEqual(p.time_prec, 4) self.assertEqual(p.written_to_base, True) self.assertEqual(p.value_from_binary(p.value_to_binary(self.values[i])), self.values[i]) msg = paramsvalues_pb2.ParamValue() msg.param_no = 100; msg.time = 123456; setattr(msg, self.msg_attrs[i], self.values[i]) self.assertEqual(p.value_from_msg(msg), self.values[i])
def _msg(is_nan): msg = paramsvalues_pb2.ParamValue() msg.param_no = 100 msg.time = 123456 msg.is_nan = is_nan return msg