# [Tutor] Need help with two similar test cases that I have written. One works and the other fails

Sat Feb 6 11:07:32 EST 2016

```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.
```