def test_static_conversion_utilities(self): # Tests initializing a color by name or hex string value # (names and hex values are not case-sensitive) self.assertEqual((240, 248, 255), RGBColor.string_to_rgb('aliceblue')) self.assertEqual((240, 248, 255), RGBColor.name_to_rgb('aliceblue')) self.assertEqual((240, 248, 255), RGBColor.hex_to_rgb('F0F8FF')) self.assertEqual((240, 248, 255), RGBColor.string_to_rgb('F0F8FF')) with self.assertRaises(AssertionError): RGBColor.string_to_rgb('non_existant') self.assertEqual((0, 0, 0), RGBColor.name_to_rgb('non_existant')) self.assertEqual((240, 248, 255), RGBColor.hex_to_rgb('f0f8ff')) self.assertEqual((240, 248, 255), RGBColor.string_to_rgb('f0f8ff'))
def test_color_correction(self): color = RGBColor(RGBColor.name_to_rgb('DarkGray')) self.assertEqual((169, 169, 169), color.rgb) # Tests default color correction profile (should be no correction) color_correction_profile = RGBColorCorrectionProfile() corrected_color = color_correction_profile.apply(color) self.assertEqual((169, 169, 169), corrected_color.rgb) # Test correction with default parameters color_correction_profile.generate_from_parameters() corrected_color = color_correction_profile.apply(color) self.assertEqual((91, 91, 91), corrected_color.rgb) # Test correction with new parameters color_correction_profile.generate_from_parameters(gamma=2.0, whitepoint=(0.9, 0.85, 0.9), linear_slope=0.75, linear_cutoff=0.1) corrected_color = color_correction_profile.apply(color) self.assertEqual((77, 67, 77), corrected_color.rgb) # Test default correction profile default_profile = RGBColorCorrectionProfile.default() corrected_color = default_profile.apply(color) self.assertEqual((81, 81, 81), corrected_color.rgb) corrected_color = default_profile.apply(RGBColor((254, 254, 254))) self.assertEqual((252, 252, 252), corrected_color.rgb)