From 27999659257ec15ebf6a598b65b47f3f19ddaaa8 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Tue, 14 Mar 2023 14:27:27 +0100 Subject: Allowing to pass dictionary instance or str for ArUcoBoard creation. --- src/argaze.test/ArUcoMarkers/ArUcoBoard.py | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/argaze.test/ArUcoMarkers/ArUcoBoard.py (limited to 'src/argaze.test') diff --git a/src/argaze.test/ArUcoMarkers/ArUcoBoard.py b/src/argaze.test/ArUcoMarkers/ArUcoBoard.py new file mode 100644 index 0000000..5ca1324 --- /dev/null +++ b/src/argaze.test/ArUcoMarkers/ArUcoBoard.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +import unittest +import os + +from argaze.ArUcoMarkers import ArUcoBoard, ArUcoMarkersDictionary + +import numpy + +class TestArUcoBoardClass(unittest.TestCase): + """Test ArUcoBoard class.""" + + def test_new_from_dictionary_string(self): + """Test ArUcoBoard creation using a dictionary string.""" + + # Check ArUco board creation + columns = 4 + rows = 3 + square_size = 2 + marker_size = 1 + + aruco_board = ArUcoBoard.ArUcoBoard('DICT_ARUCO_ORIGINAL', columns, rows, square_size, marker_size) + + # Check ArUco board + self.assertIsNone(numpy.testing.assert_array_equal(aruco_board.identifiers, [i for i in range(int((columns*rows)/2))])) + self.assertIsNone(numpy.testing.assert_array_equal(aruco_board.size, [columns, rows])) + self.assertEqual(aruco_board.markers_number, int((columns*rows)/2)) + self.assertEqual(aruco_board.corners_number, (columns-1)*(rows-1)) + + def test_new_from_dictionary_instance(self): + """Test ArUcoBoard creation using a dictionary instance.""" + + # Check ArUco board creation + columns = 4 + rows = 3 + square_size = 2 + marker_size = 1 + + aruco_dictionary = ArUcoMarkersDictionary.ArUcoMarkersDictionary('DICT_ARUCO_ORIGINAL') + aruco_board = ArUcoBoard.ArUcoBoard(aruco_dictionary, columns, rows, square_size, marker_size) + + # Check ArUco board + self.assertIsNone(numpy.testing.assert_array_equal(aruco_board.identifiers, [i for i in range(int((columns*rows)/2))])) + self.assertIsNone(numpy.testing.assert_array_equal(aruco_board.size, [columns, rows])) + self.assertEqual(aruco_board.markers_number, int((columns*rows)/2)) + self.assertEqual(aruco_board.corners_number, (columns-1)*(rows-1)) + +if __name__ == '__main__': + + unittest.main() \ No newline at end of file -- cgit v1.1