def test_get_mask_and_shift_from_mask_string(self): # When the mask character is not present. mask, shift = util.get_mask_and_shift_from_mask_string(self.mask1_template_string, "c") self.assertEqual(mask, 0) self.assertEqual(shift, 0) # When the mask character is leading. mask, shift = util.get_mask_and_shift_from_mask_string(self.mask1_template_string, "L") self.assertEqual(mask, util._b2n(self.mask1L_bit_string)) self.assertEqual(shift, self.mask1L_shift) # When the mask character is mid-string. mask, shift = util.get_mask_and_shift_from_mask_string(self.mask1_template_string, "M") self.assertEqual(mask, util._b2n(self.mask1M_bit_string)) self.assertEqual(shift, self.mask1M_shift) # When the mask character is trailing. mask, shift = util.get_mask_and_shift_from_mask_string(self.mask1_template_string, "T") self.assertEqual(mask, util._b2n(self.mask1T_bit_string)) self.assertEqual(shift, self.mask1T_shift)
def test_set_masked_value_for_variable(self): # Whether the value gets updated for the variable. test_data = [ ("L", self.mask1L_bit_string, self.mask1L_base_mask_string), ("M", self.mask1M_bit_string, self.mask1M_base_mask_string), ("T", self.mask1T_bit_string, self.mask1T_base_mask_string), ] for mask_char, bit_string, base_mask_string in test_data: mask, shift = util.get_mask_and_shift_from_mask_string(self.mask1_template_string, mask_char) mask_value = util._b2n(base_mask_string) # Test setting those bits to a value they will always accept (1). resulting_value = util.set_masked_value_for_variable(0, self.mask1_template_string, mask_char, 1) self.assertTrue(resulting_value >> shift, 1) # Test setting a value that won't fit in the available bit range. self.assertRaises(ValueError, util.set_masked_value_for_variable, 0, self.mask1_template_string, mask_char, mask_value+1)
def test_get_mask_and_shift_from_mask_string(self): # When the mask character is not present. mask, shift = util.get_mask_and_shift_from_mask_string( self.mask1_template_string, "c") self.assertEqual(mask, 0) self.assertEqual(shift, 0) # When the mask character is leading. mask, shift = util.get_mask_and_shift_from_mask_string( self.mask1_template_string, "L") self.assertEqual(mask, util._b2n(self.mask1L_bit_string)) self.assertEqual(shift, self.mask1L_shift) # When the mask character is mid-string. mask, shift = util.get_mask_and_shift_from_mask_string( self.mask1_template_string, "M") self.assertEqual(mask, util._b2n(self.mask1M_bit_string)) self.assertEqual(shift, self.mask1M_shift) # When the mask character is trailing. mask, shift = util.get_mask_and_shift_from_mask_string( self.mask1_template_string, "T") self.assertEqual(mask, util._b2n(self.mask1T_bit_string)) self.assertEqual(shift, self.mask1T_shift)
def test_set_masked_value_for_variable(self): # Whether the value gets updated for the variable. test_data = [ ("L", self.mask1L_bit_string, self.mask1L_base_mask_string), ("M", self.mask1M_bit_string, self.mask1M_base_mask_string), ("T", self.mask1T_bit_string, self.mask1T_base_mask_string), ] for mask_char, bit_string, base_mask_string in test_data: mask, shift = util.get_mask_and_shift_from_mask_string( self.mask1_template_string, mask_char) mask_value = util._b2n(base_mask_string) # Test setting those bits to a value they will always accept (1). resulting_value = util.set_masked_value_for_variable( 0, self.mask1_template_string, mask_char, 1) self.assertTrue(resulting_value >> shift, 1) # Test setting a value that won't fit in the available bit range. self.assertRaises(ValueError, util.set_masked_value_for_variable, 0, self.mask1_template_string, mask_char, mask_value + 1)