def test_slab_fresnel_reflectance(self): #TODO #include a check that this is greater than the fresnel reflection coef, and #check for correct values #if TIR is exceeded, should return a nan: tir_angle = geo.tir_angle(1.6, 1.0) self.assertTrue(numpy.isnan( geo.slab_fresnel_reflectance(1.6, tir_angle + 0.01, 1.0)))
def test_fresnel_coefs(self): self.assertEqual(geo.fresnel_coefs(1.0, 0, 1.0), (0.0, 1.0)) R,T = geo.fresnel_coefs(1.6, 0.5, 1.0) self.assertAlmostEqual(R, 0.072538667, places=6) self.assertAlmostEqual(T, 0.927461332, places=6) #angles which exceed TIR should return nans: tir_angle = geo.tir_angle(1.6, 1.0) self.assertTrue(all(numpy.isnan(geo.fresnel_coefs(1.6, tir_angle + 0.01, 1.0))))
def test_tir_angle(self): self.assertAlmostEqual(geo.tir_angle(1.0, 1.0), 1.570796, places=6) self.assertAlmostEqual(geo.tir_angle(1.0, 1.1), 1.570796, places=6) self.assertAlmostEqual(geo.tir_angle(1.5, 1.0), 0.7297276, places=6)