Skip to content
Snippets Groups Projects

Unified interface for attributes

Merged Olivier BICHLER requested to merge unified_params into main
45 files
+ 1387
532
Compare changes
  • Side-by-side
  • Inline
Files
45
@@ -30,36 +30,67 @@ class test_operator_binding(unittest.TestCase):
self.assertNotEqual(gop.name(), "")
def test_param_bool(self):
self.generic_operator.add_parameter("bool", True)
self.assertEqual(self.generic_operator.get_parameter("bool"), True)
self.generic_operator.add_attr("bool", True)
self.assertEqual(self.generic_operator.has_attr("bool"), True)
self.assertEqual(self.generic_operator.get_attr("bool"), True)
self.assertEqual(self.generic_operator.get_attr_type("bool"), "bool")
self.assertEqual(self.generic_operator.get_attrs_name(), {"bool"})
self.generic_operator.del_attr("bool")
self.assertEqual(self.generic_operator.has_attr("bool"), False)
self.assertEqual(len(self.generic_operator.get_attrs_name()), 0)
def test_param_int(self):
self.generic_operator.add_parameter("int", 1)
self.assertEqual(self.generic_operator.get_parameter("int"), 1)
self.generic_operator.add_attr("int", 1)
self.assertEqual(self.generic_operator.get_attr("int"), 1)
def test_param_float(self):
self.generic_operator.add_parameter("float", 2.0)
self.assertEqual(self.generic_operator.get_parameter("float"), 2.0)
self.generic_operator.add_attr("float", 2.0)
self.assertEqual(self.generic_operator.get_attr("float"), 2.0)
def test_param_str(self):
self.generic_operator.add_parameter("str", "value")
self.assertEqual(self.generic_operator.get_parameter("str"), "value")
self.generic_operator.add_attr("str", "value")
self.assertEqual(self.generic_operator.get_attr("str"), "value")
def test_param_l_int(self):
self.generic_operator.add_parameter("l_int", [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
self.assertEqual(self.generic_operator.get_parameter("l_int"), [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
self.generic_operator.add_attr("l_int", [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
self.assertEqual(self.generic_operator.get_attr("l_int"), [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
def test_param_l_bool(self):
self.generic_operator.add_parameter("l_bool", [True, False, False, True])
self.assertEqual(self.generic_operator.get_parameter("l_bool"), [True, False, False, True])
self.generic_operator.add_attr("l_bool", [True, False, False, True])
self.assertEqual(self.generic_operator.get_attr("l_bool"), [True, False, False, True])
def test_param_l_float(self):
self.generic_operator.add_parameter("l_float", [2.0, 1.0])
self.assertEqual(self.generic_operator.get_parameter("l_float"), [2.0, 1.0])
self.generic_operator.add_attr("l_float", [2.0, 1.0])
self.assertEqual(self.generic_operator.get_attr("l_float"), [2.0, 1.0])
def test_param_l_str(self):
self.generic_operator.add_parameter("l_str", ["ok"])
self.assertEqual(self.generic_operator.get_parameter("l_str"), ["ok"])
self.generic_operator.add_attr("l_str", ["ok"])
self.assertEqual(self.generic_operator.get_attr("l_str"), ["ok"])
def test_dynamicattribute_binding(self):
# Check original C++ attributes are binded
attrs = aidge_core.test_DynamicAttributes_binding()
self.assertEqual(attrs.has_attr("a"), True)
self.assertEqual(attrs.get_attr("a"), 42)
self.assertEqual(attrs.has_attr("b"), True)
self.assertEqual(attrs.get_attr("b"), "test")
self.assertEqual(attrs.has_attr("c"), True)
self.assertEqual(attrs.get_attr("c"), [True, False, True])
self.assertEqual(attrs.get_attrs_name(), {"a", "b", "c"})
self.assertEqual(attrs.has_attr("d"), False)
# Add Python attributes
attrs.add_attr("d", 18.56)
self.assertEqual(attrs.get_attr("d"), 18.56)
self.assertEqual(attrs.has_attr("d"), True)
self.assertEqual(attrs.get_attrs_name(), {"a", "b", "c", "d"})
self.assertEqual(attrs.has_attr("e"), False)
# Check that added Python attribute is accessible in C++
# Return the value of an attribute named "d" of type float64 (double in C++)
self.assertEqual(aidge_core.test_DynamicAttributes_binding_check(attrs), 18.56)
attrs.set_attr("d", 23.89)
self.assertEqual(aidge_core.test_DynamicAttributes_binding_check(attrs), 23.89)
def test_compute_output_dims(self):
in_dims=[25, 25]
Loading