45 lines
No EOL
1.5 KiB
Python
45 lines
No EOL
1.5 KiB
Python
import unittest
|
||
from algo import gauss_method
|
||
|
||
class TestGaussMethod(unittest.TestCase):
|
||
def test_2x2_unique_solution(self):
|
||
"""Простейшая 2x2 система с уникальным решением"""
|
||
coef = [[1, 1],
|
||
[2, 3]]
|
||
free_mem = [5, 11]
|
||
result = gauss_method(coef, free_mem)
|
||
expected = [4.0, 1.0]
|
||
for r, e in zip(result, expected):
|
||
self.assertAlmostEqual(r, e, places=7)
|
||
|
||
def test_2x2_another(self):
|
||
"""Ещё одна 2x2 система"""
|
||
coef = [[2, 1],
|
||
[4, 3]]
|
||
free_mem = [5, 11]
|
||
result = gauss_method(coef, free_mem)
|
||
expected = [2.0, 1.0]
|
||
for r, e in zip(result, expected):
|
||
self.assertAlmostEqual(r, e, places=7)
|
||
|
||
def test_3x3_unique_solution(self):
|
||
"""3x3 система с уникальным решением"""
|
||
coef = [[1, 1, 1],
|
||
[2, 3, 1],
|
||
[1, 2, 3]]
|
||
free_mem = [6, 11, 14]
|
||
result = gauss_method(coef, free_mem)
|
||
expected = [1.0, 2.0, 3.0]
|
||
for r, e in zip(result, expected):
|
||
self.assertAlmostEqual(r, e, places=7)
|
||
|
||
def test_degenerate_system(self):
|
||
"""Вырожденная система должна выбросить исключение"""
|
||
coef = [[1, 1],
|
||
[2, 2]]
|
||
free_mem = [2, 4]
|
||
with self.assertRaises(ValueError):
|
||
gauss_method(coef, free_mem)
|
||
|
||
if __name__ == "__main__":
|
||
unittest.main() |