booleans: tests
what are booleans?: tests
The code in booleans/tests/test_booleans.py from booleans
1import unittest
2
3
4class TestBooleans(unittest.TestCase):
5
6 def test_what_is_false(self):
7 self.assertIsInstance(False, (bool, int))
8 self.assertNotIsInstance(
9 False,
10 (
11 float, tuple, str,
12 list, set, dict
13 )
14 )
15 self.assertIs(False, False)
16 self.assertIs(bool(False), False)
17 self.assertFalse(bool(False))
18 self.assertFalse(False)
19
20 def test_what_is_true(self):
21 self.assertIsInstance(True, (bool, int))
22 self.assertNotIsInstance(
23 True,
24 (
25 float, tuple, str,
26 list, set, dict
27 )
28 )
29 self.assertIs(True, True)
30 self.assertIs(bool(True), True)
31 self.assertTrue(bool(True))
32 self.assertTrue(True)
33
34 def test_is_none_falsy_or_truthy(self):
35 self.assertFalse(bool(None))
36 self.assertFalse(None)
37 self.assertIsNot(None, False)
38
39 def test_is_an_integer_falsy_or_truthy(self):
40 a_negative_integer = -1
41 self.assertTrue(bool(a_negative_integer))
42 self.assertTrue(a_negative_integer)
43 self.assertIsNot(a_negative_integer, True)
44
45 self.assertFalse(bool(0))
46 self.assertFalse(0)
47 self.assertIsNot(0, False)
48
49 a_positive_integer = 1
50 self.assertTrue(bool(a_positive_integer))
51 self.assertTrue(a_positive_integer)
52 self.assertIsNot(a_positive_integer, True)
53
54 def test_is_a_float_falsy_or_truthy(self):
55 a_negative_float = -0.1
56 self.assertTrue(bool(a_negative_float))
57 self.assertTrue(a_negative_float)
58 self.assertIsNot(a_negative_float, True)
59
60 self.assertFalse(bool(0.0))
61 self.assertFalse(0.0)
62 self.assertIsNot(0.0, False)
63
64 a_positive_float = 0.1
65 self.assertTrue(bool(a_positive_float))
66 self.assertTrue(a_positive_float)
67 self.assertIsNot(a_positive_float, True)
68
69 def test_is_a_string_falsy_or_truthy(self):
70 self.assertFalse(bool(str()))
71 self.assertFalse(str())
72 self.assertIsNot(str(), False)
73
74 a_string = "string with things"
75 self.assertTrue(bool(a_string))
76 self.assertTrue(a_string)
77 self.assertIsNot(a_string, True)
78
79 def test_is_a_tuple_falsy_or_truthy(self):
80 self.assertFalse(bool(tuple()))
81 self.assertFalse(tuple())
82 self.assertIsNot(tuple(), False)
83
84 a_tuple = (0, 1, 2, 'n')
85 self.assertTrue(bool(a_tuple))
86 self.assertTrue(a_tuple)
87 self.assertIsNot(a_tuple, True)
88
89 def test_is_a_list_falsy_or_truthy(self):
90 self.assertFalse(bool(list()))
91 self.assertFalse(list())
92 self.assertIsNot(list(), False)
93
94 a_list = [0, 1, 2, 'n']
95 self.assertTrue(bool(a_list))
96 self.assertTrue(a_list)
97 self.assertIsNot(a_list, True)
98
99 def test_is_a_set_falsy_or_truthy(self):
100 self.assertFalse(bool(set()))
101 self.assertFalse(set())
102 self.assertIsNot(set(), False)
103
104 a_set = {0, 1, 2, 'n'}
105 self.assertTrue(bool(a_set))
106 self.assertTrue(a_set)
107 self.assertIsNot(a_set, True)
108
109 def test_is_a_dictionary_falsy_or_truthy(self):
110 self.assertFalse(bool(dict()))
111 self.assertFalse(dict())
112 self.assertIsNot(dict(), False)
113
114 a_dictionary = {'key': 'value'}
115 self.assertTrue(bool(a_dictionary))
116 self.assertTrue(a_dictionary)
117 self.assertIsNot(a_dictionary, True)
118
119 def test_the_value_of_false(self):
120 self.assertEqual(False+1, 1)
121 self.assertEqual(False-1, -1)
122 self.assertEqual(False*1, 0)
123
124 # raises ZeroDivisionError
125 # 1 / False
126
127 def test_the_value_of_true(self):
128 self.assertEqual(True+1, 2)
129 self.assertEqual(True-1, 0)
130 self.assertEqual(True*1, 1)
131 self.assertEqual(True/1, 1)
132
133
134# NOTES
135# bool(a dictionary with things) is True
136# bool(a set with things) is True
137# bool(a list with things) is True
138# bool(a tuple with things) is True
139# bool(a string with things) is True
140# bool(a positive number) is True
141# bool(a negative number) is True
142# True is True
143# True is an integer
144# the value of True is 1
145# True is a boolean
146# True is NOT False
147# bool(the empty dictionary) is False
148# bool(the empty set) is False
149# bool(the empty list) is False
150# bool(the empty tuple) is False
151# bool(the empty string) is False
152# bool(zero) is False
153# bool(None) is False
154# False is False
155# False is an integer
156# the value of False is 0
157# False is a boolean
158# False is NOT True
159
160
161# Exceptions seen
162# AssertionError
163# ZeroDivisionError