CURSOR.EDUCATION

CURSOR.EDUCATION

Python Group "Alphabet"

Tests

import unittest
import random

from homework import (
    is_two_object_has_same_value,
    is_two_objects_has_same_type,
    is_two_objects_is_the_same_objects,
    multiple_ints,
    multiple_ints_with_conversion,
    alphabet,
    simple_sort,
    is_word_in_text,
    remove_from_list_all_negative_numbers,
    some_loop_exercise
)


class TestObjectsComparison(unittest.TestCase):

    def test_is_two_object_has_same_value_compare(self):
        self.assertTrue(is_two_object_has_same_value(10, 10))

        first_value = second_value = 15
        self.assertTrue(is_two_object_has_same_value(first_value, second_value))

        first_value = second_value = [1, 2, 5]
        self.assertTrue(is_two_object_has_same_value(first_value, second_value))

        self.assertFalse(is_two_object_has_same_value(first_value, 17))

        self.assertTrue(is_two_object_has_same_value(["Hello", 15, True], ["Hello", 15, True]))

        self.assertFalse(is_two_objects_has_same_type(96, 96.0))

    def test_is_two_objects_has_same_type(self):
        self.assertTrue(is_two_objects_has_same_type(10, 10))

        first_value = second_value = 15
        self.assertTrue(is_two_objects_has_same_type(first_value, second_value))

        first_value = second_value = [1, 2, 5]
        self.assertTrue(is_two_objects_has_same_type(first_value, second_value))

        self.assertFalse(is_two_objects_has_same_type(first_value, 17))

        self.assertTrue(is_two_objects_has_same_type(["Hello", 15, True], ["Hello", 15, True]))

        self.assertFalse(is_two_objects_has_same_type(96, 96.0))

    def test_is_two_objects_is_the_same_objects(self):
        self.assertTrue(is_two_objects_is_the_same_objects(10, 10))

        first_value = second_value = 15
        self.assertTrue(is_two_objects_is_the_same_objects(first_value, second_value))

        first_value = second_value = [1, 2, 5]
        self.assertTrue(is_two_objects_is_the_same_objects(first_value, second_value))

        first_value = [1, 2, 5]
        second_value = [1, 2, 5]
        self.assertFalse(is_two_objects_is_the_same_objects(first_value, second_value))

        self.assertFalse(is_two_objects_is_the_same_objects(first_value, 17))

        self.assertFalse(is_two_objects_is_the_same_objects(["Hello", 15, True], ["Hello", 15, True]))

        self.assertFalse(is_two_objects_is_the_same_objects(96, 96.0))


class TestOperationsWithInts(unittest.TestCase):

    def test_multiple_ints_good_values(self):
        self.assertEqual(multiple_ints(6, 0), 0)
        self.assertEqual(multiple_ints(12, 2), 24)

    def test_multiple_ints_invalid_argument_values(self):
        with self.assertRaises(ValueError):
            multiple_ints(6.0, 2)
            multiple_ints([12, 5, 7], 2)
            multiple_ints("Some useful text from from your teacher", 2)
            multiple_ints(True, 2)

    def test_multiple_ints_with_conversion_good_values(self):
        self.assertEqual(multiple_ints_with_conversion(6, 0), 0)
        self.assertEqual(multiple_ints_with_conversion(12, 2), 24)

        self.assertEqual(multiple_ints_with_conversion(6, "2"), 12)
        self.assertEqual(multiple_ints_with_conversion("12", 2), 24)

        self.assertEqual(multiple_ints_with_conversion(True, 2), 2)

    def test_multiple_ints_with_conversion_invalid_values(self):
        with self.assertRaises(ValueError):
            multiple_ints("Some useful text from your teacher", 2)
            multiple_ints([12, 6, 98], 2)


class TestLoopExercises(unittest.TestCase):

    def test_some_loop_exercise(self):

        self.assertListEqual(some_loop_exercise(), [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12])

    def test_remove_from_list_all_negative_numbers(self):
        input_data = [1, 2, -9, 6, 7, 6, -19, -12]
        expected_result = [1, 2, 6, 7, 6]
        self.assertListEqual(remove_from_list_all_negative_numbers(input_data), expected_result)
        input_data = [-33, 68, -5, -65, 47, -55, -36, 85, -6, 50]
        expected_result = [68, 47, 85, 50]

        self.assertListEqual(remove_from_list_all_negative_numbers(input_data), expected_result)

        input_data = [-14, -59, -36, -69, -73, -69, -44, -83, -77, -93]
        expected_result = []
        self.assertListEqual(remove_from_list_all_negative_numbers(input_data), expected_result)

        for i in range(10):
            input_data = [random.randint(-100, 100)]
            result = remove_from_list_all_negative_numbers(input_data)
            if result:
                min_value = min(result)
                self.assertGreaterEqual(min_value, 0)


class TestWords(unittest.TestCase):

    def test_is_word_in_text(self):

        text = "This is very easy task"
        words = text.split()

        for word in words:
            self.assertTrue(is_word_in_text(word, text))

    def test_is_word_text(self):
        text = "Some another text"
        words = ["some", "blabla", ".", "y"]

        for word in words:
            result = is_word_in_text(word, text)
            self.assertIsNotNone(result)
            self.assertFalse(result)


class TestSimpleSort(unittest.TestCase):

    def test_simple_sort(self):
        for _ in range(10):
            input_data = [random.randint(0, 100) for _ in range(random.randint(2, 20))]
            expected_result = input_data.copy()
            expected_result.sort()
            self.assertListEqual(simple_sort(input_data), expected_result)


class TestAlphabet(unittest.TestCase):

    def test_alphabet(self):
        expected = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k', 12: 'l',
                    13: 'm', 14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't', 21: 'u', 22: 'v', 23: 'w',
                    24: 'x', 25: 'y', 26: 'z'}
        self.assertDictEqual(alphabet(), expected)


if __name__ == "__main__":
    unittest.main()


Report Page