diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..445bb85 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,4 @@ +[pytest] +addopts = -ra -q +testpaths = tests +python_files = tests.py test_*.py \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/preparer_tester.py b/tests/preparer_tester.py deleted file mode 100644 index 51567af..0000000 --- a/tests/preparer_tester.py +++ /dev/null @@ -1,52 +0,0 @@ -import pytest -import sys - -sys.path.append('..') - -from src.preparer.PrepareExpression import PrepareExpression - -class TestPrepareExpression: - preparer = PrepareExpression() - - def test_add_asterisks(self): - # Test case 1: Single level parentheses - expression1 = "(1+2)(3+4)" - result1 = self.preparer.add_asterisks(expression1) - assert result1 == "(1+2)*(3+4)" - - # Test case 2: Nested parentheses - expression2 = "(1+2(2+3(3+4)))" - result2 = self.preparer.add_asterisks(expression2) - assert result2 == "(1+2*(2+3*(3+4)))" - - def test_fix_mismatched_parentheses(self): - # Test case 1: Fixing a single mismatched closing parenthesis - expression1 = "(((1+2)+3)+4))" - fixed_expression1 = self.preparer.fix_mismatched_parentheses(expression1) - assert fixed_expression1 == "(((1+2)+3)+4)" - - # Test case 2: Fixing a single mismatched opening parenthesis - expression2 = "(((1+2)+3)+4" - fixed_expression2 = self.preparer.fix_mismatched_parentheses(expression2) - assert fixed_expression2 == "(((1+2)+3)+4)" - - # Test case 3: Fixing multiple mismatched parentheses - expression3 = "(((1+2)+3)+4))" - fixed_expression3 = self.preparer.fix_mismatched_parentheses(expression3) - assert fixed_expression3 == "(((1+2)+3)+4)" - - # Test case 4: No mismatched parentheses - expression4 = "(((1+2)+3)+4)" - fixed_expression4 = self.preparer.fix_mismatched_parentheses(expression4) - assert fixed_expression4 == "(((1+2)+3)+4)" - - def test_combined_methods(self): - # Test case 1: Combined methods: add_asterisks + fix_mismatched_parentheses - expression1 = "(((1+2)+3)+4))" - result1 = self.preparer.add_asterisks(expression1) - fixed_result1 = self.preparer.fix_mismatched_parentheses(result1) - assert fixed_result1 == "(((1+2)+3)+4)" - - -if __name__ == "__main__": - pytest.main() \ No newline at end of file diff --git a/tests/test_PrepareExpression.py b/tests/test_PrepareExpression.py new file mode 100644 index 0000000..a13fca8 --- /dev/null +++ b/tests/test_PrepareExpression.py @@ -0,0 +1,54 @@ +import sys +import pytest +sys.path.append('..') + +from src.preparer.PrepareExpression import PrepareExpression + +def test_add_asterisks(): + preparer = PrepareExpression() + + # Test case 1: Single level parentheses + expression1 = "(1+2)(3+4)" + result1 = preparer.add_asterisks(expression1) + assert result1 == "(1+2)*(3+4)" + + # Test case 2: Nested parentheses + expression2 = "(1+2(2+3(3+4)))" + result2 = preparer.add_asterisks(expression2) + assert result2 == "(1+2*(2+3*(3+4)))" + +def test_fix_mismatched_parentheses(): + preparer = PrepareExpression() + + # Test case 1: Fixing a single mismatched closing parenthesis + expression1 = "(((1+2)+3)+4))" + fixed_expression1 = preparer.fix_mismatched_parentheses(expression1) + assert fixed_expression1 == "(((1+2)+3)+4)" + + # Test case 2: Fixing a single mismatched opening parenthesis + expression2 = "(((1+2)+3)+4" + fixed_expression2 = preparer.fix_mismatched_parentheses(expression2) + assert fixed_expression2 == "(((1+2)+3)+4)" + + # Test case 3: Fixing multiple mismatched parentheses + expression3 = "(((1+2)+3)+4))" + fixed_expression3 = preparer.fix_mismatched_parentheses(expression3) + assert fixed_expression3 == "(((1+2)+3)+4)" + + # Test case 4: No mismatched parentheses + expression4 = "(((1+2)+3)+4)" + fixed_expression4 = preparer.fix_mismatched_parentheses(expression4) + assert fixed_expression4 == "(((1+2)+3)+4)" + +def test_combined_methods(): + preparer = PrepareExpression() + + # Test case 1: Combined methods: add_asterisks + fix_mismatched_parentheses + expression1 = "(((1+2)+3)+4))" + result1 = preparer.add_asterisks(expression1) + fixed_result1 = preparer.fix_mismatched_parentheses(result1) + assert fixed_result1 == "(((1+2)+3)+4)" + + +if __name__ == '__main__': + pytest.main()