L3-Bataille-Navale/source/_test/utils.py

159 lines
3.9 KiB
Python

import unittest
import numpy as np
from source.utils import dict_filter, dict_filter_prefix, dict_add_prefix, copy_array_offset
class TestDict(unittest.TestCase):
"""
Unité de test des fonctionnalités utilitaire pour dictionnaire
"""
def test_dict_filter(self):
"""
Test du filtre de dictionnaire
"""
self.assertEqual(
dict_filter(
lambda key, value: key.startswith("valeur"),
{"valeur1": 1, "valeur2": 2, "clé1": None}
),
{"valeur1": 1, "valeur2": 2}
)
self.assertEqual(
dict_filter(
lambda key, value: key.startswith("test"),
{"test_AB": 1, "TEST_AB": 2.5, "début": 3}
),
{"test_AB": 1}
)
self.assertEqual(
dict_filter(
lambda key, value: key.startswith("test"),
{"input_AB": 1, "TEST_AB": 2.5, "début": 3}
),
{}
)
def test_dict_filter_prefix(self):
"""
Test du filtre de dictionnaire par prefix
"""
self.assertEqual(
dict_filter_prefix(
"valeur",
{"valeur1": 1, "valeur2": 2, "clé1": None}
),
{"1": 1, "2": 2}
)
self.assertEqual(
dict_filter_prefix(
"test_",
{"test_AB": 1, "TEST_AB": 2.5, "début": 3}
),
{"AB": 1}
)
self.assertEqual(
dict_filter_prefix(
"test",
{"input_AB": 1, "TEST_AB": 2.5, "début": 3}
),
{}
)
def test_dict_add_prefix(self):
"""
Test de l'ajout de prefix dans un dictionnaire
"""
self.assertEqual(
dict_add_prefix(
"valeur",
{"1": 1, "2": 2, "A": None}
),
{"valeur1": 1, "valeur2": 2, "valeurA": None}
)
self.assertEqual(
dict_add_prefix(
"test_",
{"AB": 1, "2": 2.5, "fin": 3}
),
{"test_AB": 1, "test_2": 2.5, "test_fin": 3}
)
self.assertEqual(
dict_add_prefix(
"test",
{"A": 1, "B": 2.5, "E": 3}
),
{"testA": 1, "testB": 2.5, "testE": 3}
)
class TestMatrice(unittest.TestCase):
"""
Unité de test des fonctionnalités utilitaire pour matrice
"""
def test_copy_array_offset(self):
"""
Test de la copie d'une matrice dans une autre avec décalage
"""
src = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
dst = np.array([
[2, 5, 1, 3, 5, 0],
[2, 3, 4, 1, 4, 5],
[0, 1, 4, 0, 3, 9],
[4, 0, 9, 5, 2, 8]
])
copy_dst = dst.copy()
copy_array_offset(src=src, dst=copy_dst, offset=(1, 2))
self.assertTrue(
(copy_dst == np.array([
[2, 5, 1, 3, 5, 0],
[2, 3, 4, 1, 4, 5],
[0, 1, 2, 3, 4, 9],
[4, 5, 6, 7, 8, 8]
])).all()
)
copy_dst = dst.copy()
copy_array_offset(src=src, dst=copy_dst, offset=(2, 2))
self.assertTrue(
(copy_dst == np.array([
[2, 5, 1, 3, 5, 0],
[2, 3, 4, 1, 4, 5],
[0, 1, 1, 2, 3, 4],
[4, 0, 5, 6, 7, 8]
])).all()
)
copy_dst = dst.copy()
copy_array_offset(src=src, dst=copy_dst, offset=(1, 0))
self.assertTrue(
(copy_dst == np.array([
[2, 1, 2, 3, 4, 0],
[2, 5, 6, 7, 8, 5],
[0, 1, 4, 0, 3, 9],
[4, 0, 9, 5, 2, 8]
])).all()
)
if __name__ == '__main__':
unittest.main()