BRDF class with tests