Hello Everyone, I am trying to write a simple program that generated random numbers based on some rules. when my program is in the yellow state, it should generate the numbers from 100.0-100.5 and 102.5-103.0. When my program is in the red state, it should generate numbers in the range less than 99.9 and greater than 103.1.
I have written two very simple functions, and two unittest.TestCase test cases to test the two functions. I somehow feel that both my test cases doesn't make any sense, yet one of it passes perfectly and other one does not pass. Here is my code: import random import unittest red_temperature_min = 99.9 red_temperature_max = 103.0 normal_temperature_min = 101.0 normal_temperature_max = 102.0 yellow_temperature_min = 100.0 yellow_temperature_max = 103.0 def red_temperature_simulation(): """ Method to simulate the red temperature condition """ choice = random.randint(0,1) if choice: return round(random.uniform(red_temperature_min - 5.0, red_temperature_min)) else: return round(random.uniform(red_temperature_max, red_temperature_max + 5.0)) def yellow_temperature_simulation(): """ Method to simulate the yellow temperature condition """ choice = random.randint(0,1) if choice: return round(random.uniform(yellow_temperature_min, normal_temperature_min - 0.5), 2) else: return round(random.uniform(normal_temperature_max + 0.5, yellow_temperature_max), 2) class TestCase(unittest.TestCase): def test_red_temperature_simulation(self): """ Method to test the red_temperature_simulation method """ for i in range(100000): self.assertLess(red_temperature_simulation(), 100.0) and \ self.assertGreater(red_temperature_simulation(), 103.0) def test_yellow_temperature_simulation(self): """ Method to test the yellow_temperature_simulation method """ for i in range(1000000): (self.assertGreaterEqual(yellow_temperature_simulation(), 100.0)) and \ (self.assertLessEqual(yellow_temperature_simulation(), 100.5)) and \ (self.assertGreaterEqual(yellow_temperature_simulation(), 102.5)) and \ (self.assertLessEqual(yellow_temperature_simulation(), 103.0)) I try to test if a number 99.7 is less than 100.0 and at the same time I also check if it's greater than 102.5. The sentence itself doesn't make sense, but somehow the test case for yellow passes, but the test case for red fails. I have also tried using and instead of or! I want to test my code, is there a better way of doing it? Thank You. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor