def test_Y_rgb(self): mgr = ColorManager(False) runtime = Runtime() mgr.Y_asm([runtime], 'luminance') spec1 = mgr.create_spectrum((0.66, 0.88, 0.11)) mc = create_assembler().assemble(self.asm_code1(mgr)) ds = runtime.load("test", mc) ds["sp1.values"] = spec1.to_ds() runtime.run("test") self.assertAlmostEqual(mgr.Y(spec1), ds["Y"], 4)
def test_lum2(self): code = """ ret = luminance(spec1) """ rgb = RGBSpectrum(0.2, 0.3, 0.2) props = {'spec1': rgb, 'ret': 0.0} col_mgr = ColorManager(spectral=False) bs = BasicShader(code, props, col_mgr=col_mgr) runtime = Runtime() bs.prepare([runtime]) #print (bs.shader._code) bs.execute() lum1 = col_mgr.Y(rgb) lum2 = bs.shader.get_value('ret') self.assertAlmostEqual(lum1, lum2, places=5)