using NUnit.Framework; using System.Collections.Generic; namespace UnityEngine.XR.ARFoundation.Tests { class ARLightEstimationDataTestFixture { [Test] public void ARLightEstimationData_TestBrightnessConversion() { Dictionary brightnessToLumensMapping = new Dictionary { // {brightness (0 -> 1), intensity in lumens (0 -> 2000)} {0f, 0f}, {-1f, 0f}, {0.25f, 500f}, {0.5f, 1000f}, {0.75f, 1500f}, {1f, 2000f}, {1.3f, 2000f} }; var obj = new ARLightEstimationData(); foreach (var testPair in brightnessToLumensMapping) { // If intensity is not filled, expect it to be converted based on the brightness. obj.averageIntensityInLumens = null; obj.averageBrightness = testPair.Key; Assert.AreEqual(obj.averageIntensityInLumens, testPair.Value, "Conversion from averageBrightness to averageIntensityInLumens failed."); } obj.averageBrightness = 0.5f; obj.averageIntensityInLumens = 5000f; Assert.AreEqual(obj.averageBrightness, 0.5f, "If averageBrightness is set, no conversion should be performed."); } [Test] public void ARLightEstimationData_TestIntensityConversion() { Dictionary brightnessToLumensMapping = new Dictionary { // {intensity in lumens (0 -> 2000), brightness (0 -> 1)} {0f, 0f}, {-100f, 0f}, {500f, 0.25f}, {1000f, 0.5f}, {1500f, 0.75f}, {2000f, 1f}, {2500f, 1f} }; var obj = new ARLightEstimationData(); foreach (var testPair in brightnessToLumensMapping) { // If brightness is not filled, expect it to be converted based on the intensity. obj.averageIntensityInLumens = testPair.Key; obj.averageBrightness = null; Assert.AreEqual(obj.averageBrightness, testPair.Value, "Conversion from averageIntensityInLumens to averageBrightness failed."); } obj.averageBrightness = 0.5f; obj.averageIntensityInLumens = 5000f; Assert.AreEqual(obj.averageIntensityInLumens, 5000f, "If averageIntensityInLumens is set, no conversion should be performed."); } [Test] public void ARLightEstimationData_TestGetHashCode() { var obj1 = new ARLightEstimationData(); var obj2 = new ARLightEstimationData(); obj1.averageIntensityInLumens = 1115f; obj1.averageBrightness = null; obj2.averageIntensityInLumens = 1233f; obj2.averageBrightness = null; Assert.AreNotEqual(obj1.GetHashCode(), obj2.GetHashCode(), "Hash codes should differ when averageIntensityInLumens is different."); obj1.averageBrightness = 0.5f; obj1.averageIntensityInLumens = null; obj2.averageBrightness = 0.6f; obj2.averageIntensityInLumens = null; Assert.AreNotEqual(obj1.GetHashCode(), obj2.GetHashCode(), "Hash codes should differ when averageBrightness is different."); obj1.averageBrightness = 0.5f; obj1.averageIntensityInLumens = null; obj2.averageBrightness = 0.5f; obj2.averageIntensityInLumens = null; Assert.AreEqual(obj1.GetHashCode(), obj2.GetHashCode(), "Hash codes should match when averageBrightness is same."); } [Test] public void ARLightEstimationData_TestEquality() { var obj1 = new ARLightEstimationData(); var obj2 = new ARLightEstimationData(); Assert.AreEqual(obj1, obj2, "Freshly created ARLightEstimationData objects should match."); obj1.averageBrightness = 0.1f; obj2.averageBrightness = 0.5f; Assert.AreNotEqual(obj1, obj2, "ARLightEstimationData with different averageBrightness values should not match."); obj1.averageBrightness = 0.5f; obj2.averageBrightness = 0.5f; Assert.AreEqual(obj1, obj2, "ARLightEstimationData with same averageBrightness values should match."); obj1.averageBrightness = null; obj2.averageBrightness = 0.5f; Assert.AreNotEqual(obj1, obj2, "ARLightEstimationData with different averageBrightness values should not match."); obj1.averageIntensityInLumens = 1000; obj2.averageBrightness = 0.5f; Assert.AreEqual(obj1, obj2, "ARLightEstimationData with same calculated brightness values should match."); obj1.averageIntensityInLumens = 2000; obj2.averageBrightness = 0.5f; Assert.AreNotEqual(obj1, obj2, "ARLightEstimationData with different calculated brightness values should not match."); obj1.averageIntensityInLumens = null; obj1.averageBrightness = null; obj1.colorCorrection = new Color(1f, 0.5f, 0.5f, 1f); obj2.averageIntensityInLumens = null; obj2.averageBrightness = null; obj2.colorCorrection = new Color(1f, 0.5f, 0.5f, 1f); Assert.AreEqual(obj1, obj2, "ARLightEstimationData with same color correction should match."); obj1.averageIntensityInLumens = null; obj1.averageBrightness = null; obj1.averageColorTemperature = 5230f; obj2.averageIntensityInLumens = null; obj2.averageBrightness = null; obj2.averageColorTemperature = 5230f; Assert.AreEqual(obj1, obj2, "ARLightEstimationData with same color temperature should match."); obj1.averageIntensityInLumens = null; obj1.averageBrightness = null; obj1.averageColorTemperature = 5230f; obj1.colorCorrection = new Color(1f, 0.5f, 0.5f, 1f); obj2.averageIntensityInLumens = null; obj2.averageBrightness = null; obj2.averageColorTemperature = 5230f; obj2.colorCorrection = new Color(1f, 0.5f, 0.5f, 1f); Assert.AreEqual(obj1, obj2, "ARLightEstimationData with same properties should match."); obj1.averageIntensityInLumens = null; obj1.averageBrightness = null; obj1.averageColorTemperature = 5230f; obj1.colorCorrection = new Color(1f, 0.5f, 0.5f, 1f); obj2.averageIntensityInLumens = 2300; obj2.averageBrightness = 0.5f; obj2.averageColorTemperature = 1222f; obj2.colorCorrection = new Color(1f, 1f, 0.5f, 1f); Assert.AreNotEqual(obj1, obj2, "ARLightEstimationData with different properties should not match."); } } }