diff --git a/bit_manipulation/scale_list.py b/bit_manipulation/scale_list.py new file mode 100644 index 000000000000..542e584f7585 --- /dev/null +++ b/bit_manipulation/scale_list.py @@ -0,0 +1,24 @@ +""" +Scale List Elements +------------------- +This function multiplies every element of the input list by a given factor. +""" + + +def scale_list(numbers: list, factor: float) -> list: + """ + Scale each number in the list by a given factor. + + Args: + numbers (list): List of numbers. + factor (float): The factor to scale each number by. + + Returns: + list: Scaled list of numbers. + """ + return [num * factor for num in numbers] + + +if __name__ == "__main__": + # Example usage + print(scale_list([1, 2, 3], 2)) # Output: [2, 4, 6] diff --git a/bit_manipulation/test_scale_list.py b/bit_manipulation/test_scale_list.py new file mode 100644 index 000000000000..bd5919fc8516 --- /dev/null +++ b/bit_manipulation/test_scale_list.py @@ -0,0 +1,13 @@ +import unittest +from bit_manipulation.scale_list import scale_list + + +class TestScaleList(unittest.TestCase): + def test_scaling(self): + self.assertEqual(scale_list([1, 2, 3], 2), [2, 4, 6]) + self.assertEqual(scale_list([-1, -2], 3), [-3, -6]) + self.assertEqual(scale_list([0, 1], 0), [0, 0]) + + +if __name__ == "__main__": + unittest.main()