From da51111f9b4d04c6bf34c60d664eedacff99d3b0 Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Fri, 27 Dec 2024 23:12:24 +0200 Subject: [PATCH 1/8] Add is_even.py to solutions folder --- solutions/is_even.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 solutions/is_even.py diff --git a/solutions/is_even.py b/solutions/is_even.py new file mode 100644 index 000000000..2f751f013 --- /dev/null +++ b/solutions/is_even.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on XX XX XX + +A module for checking if an integer is even. + +@author: Luyando Ennie Chitindi +""" +def is_even(number:int) -> bool: + """ + This checks if an integer is even. + + Parameters: + number: int, the number to check + + Returns -> bool: + True if the number is even, false otherwise. + + Raises: + AssertionError: if the input is not an integer + + Example: + >>> is_even(4) + True + >>> is_even(3) + False + >>> is_even(0) + True + >>> is_even("hello") + Traceback (most recent call last): + ... + AssertionError: Input must be an integer. + """ + assert isinstance(number, int), "Input must be an integer" + if number % 2 == 0: + return True + return False From 37fcf02efbac54da757ac2fa5463a113dc539dcf Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Sat, 28 Dec 2024 01:29:32 +0200 Subject: [PATCH 2/8] Add is_even function and corresponding unit test --- solutions/tests/test_is_even.py | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 solutions/tests/test_is_even.py diff --git a/solutions/tests/test_is_even.py b/solutions/tests/test_is_even.py new file mode 100644 index 000000000..d4312c615 --- /dev/null +++ b/solutions/tests/test_is_even.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on XX XX XX + +@Luyando Ennie Chitindi +""" + +import unittest +from solutions.is_even import is_even + +class TestIsEven(unittest.TestCase): + """ Test the is_even function""" + +def test_even_number(self): + """It should evaluate 4 to true""" + actual = is_even(4) + expected = True + self.assertEqual(actual, expected) + +def test_odd_number(self): + """It should evaluate 3 to False""" + actual = is_even(3) + expected = False + self.assertEqual(actual, expected) + +def test_zero(self): + """It should evaluate 0 to True""" + actual = is_even(0) + expected = True + self.assertEqual(actual, expected) + +def test_negative_even_number(self): + """It should evaluate -2 to True""" + actual = is_even(-2) + expected = True + self.assertEqual(actual, expected) + +def test_negative_odd_number(self): + """It should evaluate -3 to False""" + actual = is_even(-3) + expected = False + self.assertEqual(actual, expected) + +def test_non_integer_input(self): + """It should raise an assertion error if the argument is not an integer""" + with self.assertRaises(AssertionError): + is_even(3.5) + + with self.assertRaises(AssertionError): + is_even("string") + +def test_less_than_0(self): + """It should raise an assertion error if the argument is less than 0""" + with self.assertRaises(AssertionError): + is_even(-2.5) + +if __name__ == "__main__": + unittest.main() From fdf1ea856e2734897f67f14a3dd22b53420dd34b Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Sat, 28 Dec 2024 02:02:39 +0200 Subject: [PATCH 3/8] Remove is_even.py for resubmission --- solutions/is_even.py | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 solutions/is_even.py diff --git a/solutions/is_even.py b/solutions/is_even.py deleted file mode 100644 index 2f751f013..000000000 --- a/solutions/is_even.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Created on XX XX XX - -A module for checking if an integer is even. - -@author: Luyando Ennie Chitindi -""" -def is_even(number:int) -> bool: - """ - This checks if an integer is even. - - Parameters: - number: int, the number to check - - Returns -> bool: - True if the number is even, false otherwise. - - Raises: - AssertionError: if the input is not an integer - - Example: - >>> is_even(4) - True - >>> is_even(3) - False - >>> is_even(0) - True - >>> is_even("hello") - Traceback (most recent call last): - ... - AssertionError: Input must be an integer. - """ - assert isinstance(number, int), "Input must be an integer" - if number % 2 == 0: - return True - return False From e8d8c22863787fb44bf390cf7b05adb016a94ad5 Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Sat, 28 Dec 2024 02:33:26 +0200 Subject: [PATCH 4/8] Re added is_even.py function --- solutions/is_even.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 solutions/is_even.py diff --git a/solutions/is_even.py b/solutions/is_even.py new file mode 100644 index 000000000..2f751f013 --- /dev/null +++ b/solutions/is_even.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on XX XX XX + +A module for checking if an integer is even. + +@author: Luyando Ennie Chitindi +""" +def is_even(number:int) -> bool: + """ + This checks if an integer is even. + + Parameters: + number: int, the number to check + + Returns -> bool: + True if the number is even, false otherwise. + + Raises: + AssertionError: if the input is not an integer + + Example: + >>> is_even(4) + True + >>> is_even(3) + False + >>> is_even(0) + True + >>> is_even("hello") + Traceback (most recent call last): + ... + AssertionError: Input must be an integer. + """ + assert isinstance(number, int), "Input must be an integer" + if number % 2 == 0: + return True + return False From a086da950db05e02d7dcfc79a09199d12b373f1d Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Sat, 28 Dec 2024 17:00:05 +0200 Subject: [PATCH 5/8] Updated is_even.py and test_is_even.py for CI checks compliance --- solutions/is_even.py | 2 +- solutions/tests/test_is_even.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/is_even.py b/solutions/is_even.py index 2f751f013..9e66889b2 100644 --- a/solutions/is_even.py +++ b/solutions/is_even.py @@ -3,7 +3,7 @@ """ Created on XX XX XX -A module for checking if an integer is even. +A module for checking to see if an integer is even. @author: Luyando Ennie Chitindi """ diff --git a/solutions/tests/test_is_even.py b/solutions/tests/test_is_even.py index d4312c615..ef12efc26 100644 --- a/solutions/tests/test_is_even.py +++ b/solutions/tests/test_is_even.py @@ -3,7 +3,7 @@ """ Created on XX XX XX -@Luyando Ennie Chitindi +@Luyando .E. Chitindi """ import unittest From df0ab776ca50d537cb75d83298b9118a00233b89 Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Sat, 28 Dec 2024 17:51:29 +0200 Subject: [PATCH 6/8] Reuploaded is_even.py and test_is_even.py for CI checks --- solutions/is_even.py | 2 +- solutions/tests/test_is_even.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/is_even.py b/solutions/is_even.py index 9e66889b2..0395e4b8f 100644 --- a/solutions/is_even.py +++ b/solutions/is_even.py @@ -5,7 +5,7 @@ A module for checking to see if an integer is even. -@author: Luyando Ennie Chitindi +@author: Luyando .E. Chitindi """ def is_even(number:int) -> bool: """ diff --git a/solutions/tests/test_is_even.py b/solutions/tests/test_is_even.py index ef12efc26..d4312c615 100644 --- a/solutions/tests/test_is_even.py +++ b/solutions/tests/test_is_even.py @@ -3,7 +3,7 @@ """ Created on XX XX XX -@Luyando .E. Chitindi +@Luyando Ennie Chitindi """ import unittest From 7bf2e2593ea6bd52ec3002dfe7509b0d1a5d1b0d Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Sat, 28 Dec 2024 22:09:04 +0200 Subject: [PATCH 7/8] modified files --- .vscode/settings.json | 5 ++++- solutions/is_even.py | 12 +++++++----- solutions/tests/test_is_even.py | 11 ++++++++++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5a90e202f..058679944 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -113,5 +113,8 @@ }, // Enable/disable update table of contents on save - "markdown.extension.toc.updateOnSave": false + "markdown.extension.toc.updateOnSave": false, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + } } diff --git a/solutions/is_even.py b/solutions/is_even.py index 0395e4b8f..3d12add1b 100644 --- a/solutions/is_even.py +++ b/solutions/is_even.py @@ -7,19 +7,21 @@ @author: Luyando .E. Chitindi """ -def is_even(number:int) -> bool: + + +def is_even(number: int) -> bool: """ This checks if an integer is even. - + Parameters: number: int, the number to check - + Returns -> bool: True if the number is even, false otherwise. - + Raises: AssertionError: if the input is not an integer - + Example: >>> is_even(4) True diff --git a/solutions/tests/test_is_even.py b/solutions/tests/test_is_even.py index d4312c615..270d9fb70 100644 --- a/solutions/tests/test_is_even.py +++ b/solutions/tests/test_is_even.py @@ -9,8 +9,10 @@ import unittest from solutions.is_even import is_even + class TestIsEven(unittest.TestCase): - """ Test the is_even function""" + """Test the is_even function""" + def test_even_number(self): """It should evaluate 4 to true""" @@ -18,30 +20,35 @@ def test_even_number(self): expected = True self.assertEqual(actual, expected) + def test_odd_number(self): """It should evaluate 3 to False""" actual = is_even(3) expected = False self.assertEqual(actual, expected) + def test_zero(self): """It should evaluate 0 to True""" actual = is_even(0) expected = True self.assertEqual(actual, expected) + def test_negative_even_number(self): """It should evaluate -2 to True""" actual = is_even(-2) expected = True self.assertEqual(actual, expected) + def test_negative_odd_number(self): """It should evaluate -3 to False""" actual = is_even(-3) expected = False self.assertEqual(actual, expected) + def test_non_integer_input(self): """It should raise an assertion error if the argument is not an integer""" with self.assertRaises(AssertionError): @@ -50,10 +57,12 @@ def test_non_integer_input(self): with self.assertRaises(AssertionError): is_even("string") + def test_less_than_0(self): """It should raise an assertion error if the argument is less than 0""" with self.assertRaises(AssertionError): is_even(-2.5) + if __name__ == "__main__": unittest.main() From d9b59d5ce7ca81dc5d649c58ae4dbfe751a1faab Mon Sep 17 00:00:00 2001 From: Luyando Chitindi Date: Sat, 28 Dec 2024 23:35:00 +0200 Subject: [PATCH 8/8] Fixed unit test --- solutions/tests/test_is_even.py | 97 ++++++++++++++------------------- 1 file changed, 42 insertions(+), 55 deletions(-) diff --git a/solutions/tests/test_is_even.py b/solutions/tests/test_is_even.py index 270d9fb70..f8691b45f 100644 --- a/solutions/tests/test_is_even.py +++ b/solutions/tests/test_is_even.py @@ -1,11 +1,5 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -""" -Created on XX XX XX - -@Luyando Ennie Chitindi -""" - import unittest from solutions.is_even import is_even @@ -13,55 +7,48 @@ class TestIsEven(unittest.TestCase): """Test the is_even function""" - -def test_even_number(self): - """It should evaluate 4 to true""" - actual = is_even(4) - expected = True - self.assertEqual(actual, expected) - - -def test_odd_number(self): - """It should evaluate 3 to False""" - actual = is_even(3) - expected = False - self.assertEqual(actual, expected) - - -def test_zero(self): - """It should evaluate 0 to True""" - actual = is_even(0) - expected = True - self.assertEqual(actual, expected) - - -def test_negative_even_number(self): - """It should evaluate -2 to True""" - actual = is_even(-2) - expected = True - self.assertEqual(actual, expected) - - -def test_negative_odd_number(self): - """It should evaluate -3 to False""" - actual = is_even(-3) - expected = False - self.assertEqual(actual, expected) - - -def test_non_integer_input(self): - """It should raise an assertion error if the argument is not an integer""" - with self.assertRaises(AssertionError): - is_even(3.5) - - with self.assertRaises(AssertionError): - is_even("string") - - -def test_less_than_0(self): - """It should raise an assertion error if the argument is less than 0""" - with self.assertRaises(AssertionError): - is_even(-2.5) + def test_even_number(self): + """It should evaluate 4 to true""" + actual = is_even(4) + expected = True + self.assertEqual(actual, expected) + + def test_odd_number(self): + """It should evaluate 3 to False""" + actual = is_even(3) + expected = False + self.assertEqual(actual, expected) + + def test_zero(self): + """It should evaluate 0 to True""" + actual = is_even(0) + expected = True + self.assertEqual(actual, expected) + + def test_negative_even_number(self): + """It should evaluate -2 to True""" + actual = is_even(-2) + expected = True + self.assertEqual(actual, expected) + + def test_negative_odd_number(self): + """It should evaluate -3 to False""" + actual = is_even(-3) + expected = False + self.assertEqual(actual, expected) + + def test_non_integer_input(self): + """It should raise an assertion error if the argument is not an integer""" + with self.assertRaises(AssertionError): + is_even(3.5) + + with self.assertRaises(AssertionError): + is_even("string") + + def test_less_than_0(self): + """It should raise an assertion error if the argument is less than 0""" + with self.assertRaises(AssertionError): + is_even(-2.5) if __name__ == "__main__":