def test_float_sensor(self): """Test float sensor.""" s = Sensor.float("a.float", "A float.", "power", [0.0, 5.0]) self.assertEqual(s.stype, 'float') s.set(timestamp=12345, status=Sensor.WARN, value=3.0) # test both read_formatted and format_reading self.assertEqual(s.format_reading(s.read()), (b"12345.000000", b"warn", b"3.0")) self.assertEqual(s.read_formatted(), (b"12345.000000", b"warn", b"3.0")) self.assertEqual(s.parse_value(b"3.0"), 3.0) self.assertEqual(s.parse_value(b"10"), 10.0) self.assertEqual(s.parse_value(b"-10"), -10.0) self.assertRaises(ValueError, s.parse_value, b"asd") s = Sensor(Sensor.FLOAT, "a.float", "A float.", "", [-20.0, 20.0]) self.assertEqual(s.value(), 0.0) s = Sensor(Sensor.FLOAT, "a.float", "A float.", "", [2.0, 20.0]) self.assertEqual(s.value(), 2.0) s = Sensor.float("a.float", "A float.", "", [2.0, 20.0], default=5.0) self.assertEqual(s.value(), 5.0) self.assertEqual(s.status(), Sensor.UNKNOWN) s = Sensor.float("a.float", "A float.", "", [2.0, 20.0], initial_status=Sensor.WARN) self.assertEqual(s.status(), Sensor.WARN)
def test_int_sensor(self): """Test integer sensor.""" s = Sensor.integer("an.int", "An integer.", "count", [-4, 3]) self.assertEqual(s.stype, 'integer') s.set(timestamp=12345, status=katcp.Sensor.NOMINAL, value=3) # test both read_formatted and format_reading self.assertEqual(s.format_reading(s.read()), ("12345.000000", "nominal", "3")) self.assertEqual(s.read_formatted(), ("12345.000000", "nominal", "3")) self.assertEquals(s.parse_value("3"), 3) self.assertEquals(s.parse_value("4"), 4) self.assertEquals(s.parse_value("-10"), -10) self.assertRaises(ValueError, s.parse_value, "asd") s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [-20, 20]) self.assertEquals(s.value(), 0) s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [2, 20]) self.assertEquals(s.value(), 2) s = Sensor.integer("an.int", "An integer.", "count", [2, 20], default=5) self.assertEquals(s.value(), 5) self.assertEquals(s.status(), Sensor.UNKNOWN) s = Sensor.integer("an.int", "An integer.", "count", [2, 20], initial_status=Sensor.NOMINAL) self.assertEquals(s.status(), Sensor.NOMINAL)
def test_float_sensor(self): """Test float sensor.""" s = Sensor.float("a.float", "A float.", "power", [0.0, 5.0]) self.assertEqual(s.stype, "float") s.set(timestamp=12345, status=katcp.Sensor.WARN, value=3.0) # test both read_formatted and format_reading self.assertEqual(s.format_reading(s.read()), ("12345.000000", "warn", "3")) self.assertEqual(s.read_formatted(), ("12345.000000", "warn", "3")) self.assertEquals(s.parse_value("3"), 3.0) self.assertEquals(s.parse_value("10"), 10.0) self.assertEquals(s.parse_value("-10"), -10.0) self.assertRaises(ValueError, s.parse_value, "asd") s = Sensor(katcp.Sensor.FLOAT, "a.float", "A float.", "", [-20.0, 20.0]) self.assertEquals(s.value(), 0.0) s = Sensor(katcp.Sensor.FLOAT, "a.float", "A float.", "", [2.0, 20.0]) self.assertEquals(s.value(), 2.0) s = Sensor.float("a.float", "A float.", "", [2.0, 20.0], default=5.0) self.assertEquals(s.value(), 5.0) self.assertEquals(s.status(), Sensor.UNKNOWN) s = Sensor.float("a.float", "A float.", "", [2.0, 20.0], initial_status=Sensor.WARN) self.assertEquals(s.status(), Sensor.WARN)
def test_int_sensor(self): """Test integer sensor.""" s = Sensor.integer("an.int", "An integer.", "count", [-4, 3]) self.assertEqual(s.stype, "integer") s.set(timestamp=12345, status=katcp.Sensor.NOMINAL, value=3) # test both read_formatted and format_reading self.assertEqual(s.format_reading(s.read()), ("12345.000000", "nominal", "3")) self.assertEqual(s.read_formatted(), ("12345.000000", "nominal", "3")) self.assertEquals(s.parse_value("3"), 3) self.assertEquals(s.parse_value("4"), 4) self.assertEquals(s.parse_value("-10"), -10) self.assertRaises(ValueError, s.parse_value, "asd") s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [-20, 20]) self.assertEquals(s.value(), 0) s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [2, 20]) self.assertEquals(s.value(), 2) s = Sensor.integer("an.int", "An integer.", "count", [2, 20], default=5) self.assertEquals(s.value(), 5) self.assertEquals(s.status(), Sensor.UNKNOWN) s = Sensor.integer("an.int", "An integer.", "count", [2, 20], initial_status=Sensor.NOMINAL) self.assertEquals(s.status(), Sensor.NOMINAL)
def test_int_sensor_from_native_strings(self): """Test integer sensor initialised from native strings.""" s = Sensor.integer("an.int", "An integer.", "count", [-4, 3]) # sensor attributes must be native strings self.assertEqual(s.name, "an.int") self.assertEqual(s.units, "count") self.assertEqual(s.description, "An integer.") self.assertEqual(s.stype, "integer") s.set(timestamp=12345, status=Sensor.NOMINAL, value=3) # test both read_formatted and format_reading self.assertEqual(s.format_reading(s.read()), (b"12345.000000", b"nominal", b"3")) self.assertEqual(s.read_formatted(), (b"12345.000000", b"nominal", b"3")) self.assertEqual(s.parse_value(b"3"), 3) self.assertEqual(s.parse_value(b"4"), 4) self.assertEqual(s.parse_value(b"-10"), -10) self.assertRaises(ValueError, s.parse_value, b"asd") self.assertRaises(KatcpTypeError, s.parse_value, u"asd") self.assertRaises(KatcpTypeError, s.parse_value, u"3") s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [-20, 20]) self.assertEqual(s.value(), 0) s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [2, 20]) self.assertEqual(s.value(), 2) s = Sensor.integer("an.int", "An integer.", "count", [2, 20], default=5) self.assertEqual(s.value(), 5) self.assertEqual(s.status(), Sensor.UNKNOWN) s = Sensor.integer("an.int", "An integer.", "count", [2, 20], initial_status=Sensor.NOMINAL) self.assertEqual(s.status(), Sensor.NOMINAL)