def test_problem_5_4(self): # See the note in the problem implementation for the reasoning behind using lists of string characters. self.assertEqual(p_5_4.get_prev(['0', '1', '0', '0']), ['0', '0', '1', '0']) self.assertEqual(p_5_4.get_next(['0', '1', '0', '0']), ['1', '0', '0', '0']) self.assertEqual(p_5_4.get_prev(['0', '1', '0', '1']), ['0', '0', '1', '1']) self.assertEqual(p_5_4.get_next(['0', '1', '0', '1']), ['0', '1', '1', '0']) self.assertEqual(p_5_4.get_prev(['1', '1', '1', '1']), None) self.assertEqual(p_5_4.get_next(['1', '1', '1', '1']), ['1', '0', '1', '1', '1']) self.assertEqual(p_5_4.get_prev(['0', '0', '0', '0']), None) self.assertEqual(p_5_4.get_next(['0', '0', '0', '0']), None) self.assertEqual(p_5_4.get_prev(['1', '0', '0', '1']), ['0', '1', '0', '1'])
def test_problem_5_4(self): self.assertEqual(p_5_4.get_prev(0b0001), -1) self.assertEqual(p_5_4.get_next(0b0001), 0b0010) self.assertEqual(p_5_4.get_prev(0b0100), 0b0010) self.assertEqual(p_5_4.get_next(0b0100), 0b1000) self.assertEqual(p_5_4.get_prev(0b0101), 0b0011) self.assertEqual(p_5_4.get_next(0b0101), 0b0110) self.assertEqual(p_5_4.get_prev(0b1111), -1) self.assertEqual(p_5_4.get_next(0b1111), 0b10111) self.assertEqual(p_5_4.get_prev(0b0000), -1) self.assertEqual(p_5_4.get_next(0b0000), -1) self.assertEqual(p_5_4.get_prev(np.uint32(0xffffffff)), -1) self.assertEqual(p_5_4.get_next(np.uint32(0xffffffff)), -1) self.assertEqual(p_5_4.get_prev(0b1001), 0b0110) self.assertEqual(p_5_4.get_next(0b1001), 0b1010) self.assertEqual(p_5_4.get_prev(0b0110), 0b0101) self.assertEqual(p_5_4.get_next(0b0110), 0b1001) self.assertEqual(p_5_4.get_prev(0b10011110000011), 0b10011101110000) self.assertEqual(p_5_4.get_next(0b11011001111100), 0b11011010001111)