def fn_b(a): """Change the domain-range scale for unit testing.""" b = to_domain_10(a) b *= 2 return from_range_100(b)
def test_to_domain_10(self): """Test :func:`colour.utilities.common.to_domain_10` definition.""" with domain_range_scale("Reference"): self.assertEqual(to_domain_10(1), 1) with domain_range_scale("1"): self.assertEqual(to_domain_10(1), 10) with domain_range_scale("100"): self.assertEqual(to_domain_10(1), 0.1) with domain_range_scale("100"): self.assertEqual(to_domain_10(1, np.pi), 1 / np.pi) with domain_range_scale("100"): self.assertEqual( to_domain_10(1, dtype=np.float16).dtype, np.float16)
def fn_b(a): """ Helper definition performing domain-range scale. """ b = to_domain_10(a) b *= 2 return from_range_100(b)
def _domain_range_change(a): """ Helper definition performing domain-range scale. """ b = to_domain_10(a) b *= 2 return from_range_100(b)
def test_to_domain_10(self): """ Tests :func:`colour.utilities.common.to_domain_10` definition. """ with domain_range_scale('Reference'): self.assertEqual(to_domain_10(1), 1) with domain_range_scale('1'): self.assertEqual(to_domain_10(1), 10) with domain_range_scale('100'): self.assertEqual(to_domain_10(1), 0.1) with domain_range_scale('100'): self.assertEqual(to_domain_10(1, np.pi), 1 / np.pi) with domain_range_scale('100'): self.assertEqual( to_domain_10(1, dtype=np.float16).dtype, np.float16)
def luminance_Newhall1943(V): """ Returns the *luminance* :math:`R_Y` of given *Munsell* value :math:`V` using *Newhall et al. (1943)* method. Parameters ---------- V : numeric or array_like *Munsell* value :math:`V`. Returns ------- numeric or array_like *luminance* :math:`R_Y`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``V`` | [0, 10] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``R_Y`` | [0, 100] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`Newhall1943a` Examples -------- >>> luminance_Newhall1943(4.08244375) # doctest: +ELLIPSIS 12.5500788... """ V = to_domain_10(V) R_Y = (1.2219 * V - 0.23111 * (V * V) + 0.23951 * (V**3) - 0.021009 * (V**4) + 0.0008404 * (V**5)) return from_range_100(R_Y)
def luminance_ASTMD153508(V): """ Returns the *luminance* :math:`Y` of given *Munsell* value :math:`V` using *ASTM D1535-08e1* method. Parameters ---------- V : numeric or array_like *Munsell* value :math:`V`. Returns ------- numeric or array_like *luminance* :math:`Y`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``V`` | [0, 10] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``Y`` | [0, 100] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`ASTMInternational2008a` Examples -------- >>> luminance_ASTMD153508(4.08244375) # doctest: +ELLIPSIS 12.2363426... """ V = to_domain_10(V) Y = (1.1914 * V - 0.22533 * (V**2) + 0.23352 * (V**3) - 0.020484 * (V**4) + 0.00081939 * (V**5)) return from_range_100(Y)
def luminance_Newhall1943(V): """ Returns the *luminance* :math:`R_Y` of given *Munsell* value :math:`V` using *Newhall et al. (1943)* method. Parameters ---------- V : numeric or array_like *Munsell* value :math:`V`. Returns ------- numeric or array_like *luminance* :math:`R_Y`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``V`` | [0, 10] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``R_Y`` | [0, 100] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`Newhall1943a` Examples -------- >>> luminance_Newhall1943(4.08244375) # doctest: +ELLIPSIS 12.5500788... """ V = to_domain_10(V) R_Y = (1.2219 * V - 0.23111 * (V * V) + 0.23951 * (V ** 3) - 0.021009 * (V ** 4) + 0.0008404 * (V ** 5)) return from_range_100(R_Y)
def luminance_ASTMD153508(V): """ Returns the *luminance* :math:`Y` of given *Munsell* value :math:`V` using *ASTM D1535-08e1* method. Parameters ---------- V : numeric or array_like *Munsell* value :math:`V`. Returns ------- numeric or array_like *luminance* :math:`Y`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``V`` | [0, 10] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``Y`` | [0, 100] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`ASTMInternational2008a` Examples -------- >>> luminance_ASTMD153508(4.08244375) # doctest: +ELLIPSIS 12.2363426... """ V = to_domain_10(V) Y = (1.1914 * V - 0.22533 * (V ** 2) + 0.23352 * (V ** 3) - 0.020484 * (V ** 4) + 0.00081939 * (V ** 5)) return from_range_100(Y)
def luminance_ASTMD1535(V: FloatingOrArrayLike) -> FloatingOrNDArray: """ Return the *luminance* :math:`Y` of given *Munsell* value :math:`V` using *ASTM D1535-08e1* method. Parameters ---------- V *Munsell* value :math:`V`. Returns ------- :class:`numpy.floating` or :class:`numpy.ndarray` *Luminance* :math:`Y`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``V`` | [0, 10] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``Y`` | [0, 100] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`ASTMInternational2008a` Examples -------- >>> luminance_ASTMD1535(4.08244375) # doctest: +ELLIPSIS 12.2363426... """ V = to_domain_10(V) Y = (1.1914 * V - 0.22533 * (V**2) + 0.23352 * (V**3) - 0.020484 * (V**4) + 0.00081939 * (V**5)) return as_float(from_range_100(Y))
def luminance_Newhall1943(V: FloatingOrArrayLike) -> FloatingOrNDArray: """ Return the *luminance* :math:`R_Y` of given *Munsell* value :math:`V` using *Newhall et al. (1943)* method. Parameters ---------- V *Munsell* value :math:`V`. Returns ------- :class:`numpy.floating` or :class:`numpy.ndarray` *Luminance* :math:`R_Y`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``V`` | [0, 10] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``R_Y`` | [0, 100] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`Newhall1943a` Examples -------- >>> luminance_Newhall1943(4.08244375) # doctest: +ELLIPSIS 12.5500788... """ V = to_domain_10(V) R_Y = (1.2219 * V - 0.23111 * (V * V) + 0.23951 * (V**3) - 0.021009 * (V**4) + 0.0008404 * (V**5)) return as_float(from_range_100(R_Y))