public void AllColorFieldsAreReadWriteable() { var cc = new ChromaColors(); var c = Color.Yellow; var colorProps = typeof(ChromaColors) .GetProperties() .Where(x => x.PropertyType == typeof(Color)); foreach (var pi in colorProps) { pi.SetValue(cc, c); var c2 = (Color)pi.GetValue(cc); Assert.Equal(c, c2); } }
public void InvalidColorValuesFromJsonFallBackToDefaultValue(object faultyValue) { var ccDefaults = new ChromaColors(); using var tf = new TestFolder(Path.GetDirectoryName(_appSettingsPath)); var settingsFile = tf.Resolve(Path.GetFileName(_appSettingsPath)); var jo = (JObject)JsonConvert.DeserializeObject(File.ReadAllText(settingsFile)); jo["Colors"]["HardpointsToggle"] = JToken.FromObject(faultyValue); File.WriteAllText(settingsFile, JsonConvert.SerializeObject(jo)); var settings = AppSettings.Load(settingsFile); Assert.Equal(ccDefaults.HardpointsToggle, settings.Colors.HardpointsToggle); }
public void InvalidBrightnessValuesFromJsonFallBackToDefaultValue() { var ccDefaults = new ChromaColors(); using var tf = new TestFolder(Path.GetDirectoryName(_appSettingsPath)); var settingsFile = tf.Resolve(Path.GetFileName(_appSettingsPath)); var jo = (JObject)JsonConvert.DeserializeObject(File.ReadAllText(settingsFile)); jo["Colors"]["DeviceDimBrightness"] = "NOT-A-NUMBER"; File.WriteAllText(settingsFile, JsonConvert.SerializeObject(jo)); var settings = AppSettings.Load(settingsFile); Assert.Equal(ccDefaults.DeviceDimBrightness, settings.Colors.DeviceDimBrightness); }
public void PipsAreRecalculatedOnColorChanges() { var cc = new ChromaColors(); Assert.Equal(Color.Red, cc.PowerDistributor0); Assert.Equal(Color.Yellow, cc.PowerDistributor100); Assert.Equal(Color.Red, cc.PowerDistributorScale[0]); Assert.Equal(Color.FromRgb(0xFF7F00), cc.PowerDistributorScale[4]); Assert.Equal(Color.Yellow, cc.PowerDistributorScale[8]); cc.PowerDistributor0 = Color.Blue; Assert.Equal(Color.Blue, cc.PowerDistributorScale[0]); Assert.Equal(Color.FromRgb(0x7F7F7F), cc.PowerDistributorScale[4]); Assert.Equal(Color.Yellow, cc.PowerDistributorScale[8]); cc.PowerDistributor100 = Color.Green; Assert.Equal(Color.Blue, cc.PowerDistributorScale[0]); Assert.Equal(Color.FromRgb(0x007F7F), cc.PowerDistributorScale[4]); Assert.Equal(Color.Green, cc.PowerDistributorScale[8]); }
public void BrightnessValuesAreBoundedBetween0And1(string propertyName) { var cc = new ChromaColors(); var pi = typeof(ChromaColors).GetProperty(propertyName); pi.SetValue(cc, 0.23); Assert.Equal(0.23, (double)pi.GetValue(cc)); pi.SetValue(cc, double.NaN); Assert.Equal(0.23, (double)pi.GetValue(cc)); pi.SetValue(cc, -8.23); Assert.Equal(0.0, (double)pi.GetValue(cc)); pi.SetValue(cc, 2.11); Assert.Equal(1.0, (double)pi.GetValue(cc)); pi.SetValue(cc, double.NegativeInfinity); Assert.Equal(0.0, (double)pi.GetValue(cc)); pi.SetValue(cc, double.PositiveInfinity); Assert.Equal(1.0, (double)pi.GetValue(cc)); }