diff --git a/aidge_core/unit_tests/test_operator_binding.py b/aidge_core/unit_tests/test_operator_binding.py new file mode 100644 index 0000000000000000000000000000000000000000..d095439d36ffa3f1370bfb8123b1edcaf7ea2be5 --- /dev/null +++ b/aidge_core/unit_tests/test_operator_binding.py @@ -0,0 +1,65 @@ +""" +Copyright (c) 2023 CEA-List + +This program and the accompanying materials are made available under the +terms of the Eclipse Public License 2.0 which is available at +http://www.eclipse.org/legal/epl-2.0. + +SPDX-License-Identifier: EPL-2.0 +""" + +import unittest +import aidge_core + +class test_operator_binding(unittest.TestCase): + """Very basic test to make sure the python APi is not broken. + Can be remove in later stage of the developpement. + """ + def setUp(self): + self.generic_operator = aidge_core.GenericOperator("FakeConv", 1, 1, 1).get_operator() + + def tearDown(self): + pass + + def test_default_name(self): + op_type = "Conv" + gop = aidge_core.GenericOperator(op_type, 1, 1, 1, "FictiveName") + # check node name is not operator type + self.assertNotEqual(gop.name(), "Conv") + # check node name is not default + 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) + + def test_param_int(self): + self.generic_operator.add_parameter("int", 1) + self.assertEqual(self.generic_operator.get_parameter("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) + + def test_param_str(self): + self.generic_operator.add_parameter("str", "value") + self.assertEqual(self.generic_operator.get_parameter("str"), "value") + + def test_param_l_int(self): + self.generic_operator.add_parameter("l_int", [1,2,3]) + self.assertEqual(self.generic_operator.get_parameter("l_int"), [1,2,3]) + + def test_param_l_bool(self): + self.generic_operator.add_parameter("l_bool", [True, False]) + self.assertEqual(self.generic_operator.get_parameter("l_bool"), [True, False]) + + 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]) + + def test_param_l_str(self): + self.generic_operator.add_parameter("l_str", ["ok"]) + self.assertEqual(self.generic_operator.get_parameter("l_str"), ["ok"]) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/aidge_core/unit_tests/test_parameters.py b/aidge_core/unit_tests/test_parameters.py new file mode 100644 index 0000000000000000000000000000000000000000..02c7598820d2429bc49ff9a2f02c8ee841783173 --- /dev/null +++ b/aidge_core/unit_tests/test_parameters.py @@ -0,0 +1,77 @@ +""" +Copyright (c) 2023 CEA-List + +This program and the accompanying materials are made available under the +terms of the Eclipse Public License 2.0 which is available at +http://www.eclipse.org/legal/epl-2.0. + +SPDX-License-Identifier: EPL-2.0 +""" + +import unittest +import aidge_core + +class test_parameters(unittest.TestCase): + """Very basic test to make sure the python APi is not broken. + Can be remove in later stage of the developpement. + """ + def setUp(self): + pass + + def tearDown(self): + pass + + def test_conv(self): + # TODO : test StrideDims & DilationDims when supported in ctor + in_channels = 4 + out_channels = 8 + k_dims = [2, 2] + conv_op = aidge_core.Conv2D(in_channels , out_channels, k_dims).get_operator() + self.assertEqual(conv_op.get("InChannels"), in_channels) + self.assertEqual(conv_op.get("OutChannels"), out_channels) + self.assertEqual(conv_op.get("KernelDims"), k_dims) + + def test_fc(self): + out_channels = 8 + nb_bias = True + fc_op = aidge_core.FC(out_channels, nb_bias).get_operator() + self.assertEqual(fc_op.get("OutChannels"), out_channels) + self.assertEqual(fc_op.get("NoBias"), nb_bias) + + def test_matmul(self): + out_channels = 8 + matmul_op = aidge_core.Matmul(out_channels).get_operator() + self.assertEqual(matmul_op.get("OutChannels"), out_channels) + + def test_producer_1D(self): + dims = [5] + producer_op = aidge_core.Producer(dims).get_operator() + self.assertEqual(producer_op.dims(), dims) + + def test_producer_2D(self): + dims = [10,5] + producer_op = aidge_core.Producer(dims).get_operator() + self.assertEqual(producer_op.dims(), dims) + + def test_producer_3D(self): + dims = [1,10,5] + producer_op = aidge_core.Producer(dims).get_operator() + self.assertEqual(producer_op.dims(), dims) + + def test_producer_4D(self): + dims = [12,1,10,5] + producer_op = aidge_core.Producer(dims).get_operator() + self.assertEqual(producer_op.dims(), dims) + + def test_producer_5D(self): + dims = [2,12,1,10,5] + producer_op = aidge_core.Producer(dims).get_operator() + self.assertEqual(producer_op.dims(), dims) + + def test_leaky_relu(self): + negative_slope = 0.25 + leakyrelu_op = aidge_core.LeakyReLU(negative_slope).get_operator() + self.assertEqual(leakyrelu_op.get("NegativeSlope"), negative_slope) + +if __name__ == '__main__': + unittest.main()