Example #1
0
		public Material(Color color, Luminosity luminosity, string brushFamily)
		{
			Color = color;
			Luminosity = luminosity;
			BrushFamily = brushFamily;
			Brush = new SolidColorBrush(color);
		}
		public Material GetMaterial(Luminosity i)
		{
			foreach (var m in Materials.Where(m => m.Luminosity == i))
			{
				return m;
			}
			throw new Exception($"Material with luminosity {i} cannot be found in this MaterialSet.");
		}
 /// <summary>
 /// Generates multiple random colors.
 /// </summary>
 /// <param name="scheme">Which color schemed to use when generating the color.</param>
 /// <param name="luminosity">The desired luminosity of the color.</param>
 /// <param name="count">How many colors to generate</param>
 public static Color[] GetColors(ColorScheme scheme, Luminosity luminosity, int count)
 {
     var ret = new Color[count];
     for (var i = 0; i < count; i++)
     {
         ret[i] = GetColor(scheme, luminosity);
     }
     return ret;
 }
        /// <summary>
        /// Gets a new random color.
        /// </summary>
        /// <param name="scheme">Which color schemed to use when generating the color.</param>
        /// <param name="luminosity">The desired luminosity of the color.</param>
        public static Color GetColor(ColorScheme scheme, Luminosity luminosity)
        {
            int H, S, B;

            // First we pick a hue (H)
            H = PickHue(scheme);

            // Then use H to determine saturation (S)
            S = PickSaturation(H, luminosity, scheme);

            // Then use S and H to determine brightness (B).
            B = PickBrightness(H, S, luminosity);

            // Then we return the HSB color in the desired format
            return HsvToColor(H, S, B);
        }
Example #5
0
        public void Convert_ChangeType_SelfType_EqualsSelf()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(quantity, Convert.ChangeType(quantity, typeof(Luminosity)));
        }
Example #6
0
        public void Convert_ToString_EqualsToString()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(quantity.ToString(), Convert.ToString(quantity));
        }
Example #7
0
        public void Convert_ToSByte_EqualsValueAsSameType()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal((sbyte)quantity.Value, Convert.ToSByte(quantity));
        }
Example #8
0
        public void Convert_ToDecimal_EqualsValueAsSameType()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal((decimal)quantity.Value, Convert.ToDecimal(quantity));
        }
Example #9
0
        public void ToString_NullProvider_EqualsCurrentUICulture()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(quantity.ToString(CultureInfo.CurrentUICulture, "g"), quantity.ToString(null, "g"));
        }
Example #10
0
        public void EqualsReturnsFalseOnNull()
        {
            Luminosity watt = Luminosity.FromWatts(1);

            Assert.False(watt.Equals(null));
        }
Example #11
0
		public SolidColorBrush FromLuminosity(Luminosity l)
		{
			if (LuinosityPairs.ContainsKey(l))
			{
				return (SolidColorBrush)GetValue(LuinosityPairs[l]);
			}
			throw new NotSupportedException($"Luminosity {l} not supported");
		} 
Example #12
0
        public void NegationOperator_ReturnsQuantity_WithNegatedValue(decimal value)
        {
            var quantity = Luminosity.FromWatts(value);

            Assert.Equal(Luminosity.FromWatts(-value), -quantity);
        }
        private static int PickBrightness(int H, int S, Luminosity luminosity)
        {
            var bMin = GetMinimumBrightness(H, S);
            var bMax = 100;

            switch (luminosity)
            {
                case Luminosity.Dark:
                    bMax = bMin + 20;
                    break;

                case Luminosity.Light:
                    bMin = (bMax + bMin) / 2;
                    break;

                case Luminosity.Random:
                    bMin = 0;
                    bMax = 100;
                    break;
            }

            return RandomWithin(bMin, bMax);
        }
        private static int PickSaturation(int hue, Luminosity luminosity, ColorScheme scheme)
        {
            if (luminosity == Luminosity.Random)
            {
                return RandomWithin(0, 100);
            }

            if (scheme == ColorScheme.Monochrome)
            {
                return 0;
            }

            var saturationRange = GetColorInfo(hue).SaturationRange;

            var sMin = saturationRange.Lower;
            var sMax = saturationRange.Upper;

            switch (luminosity)
            {
                case Luminosity.Bright:
                    sMin = 55;
                    break;

                case Luminosity.Dark:
                    sMin = sMax - 10;
                    break;

                case Luminosity.Light:
                    sMax = 55;
                    break;
            }

            return RandomWithin(sMin, sMax);
        }
		public LuminosityMaterialDescriptor(Luminosity luminosity, double opacity = 1.0)
		{
			Luminosity = luminosity;
			Opacity = opacity;
		}
Example #16
0
 /// <summary>
 /// Creates a new instance with the given color scheme and luminosity range.
 /// </summary>
 /// <param name="scheme">The color scheme to use when generating the color.</param>
 /// <param name="luminosity">The luminosity range to use when generating the color.</param>
 public Options(ColorScheme scheme, Luminosity luminosity)
 {
     ColorScheme = scheme;
     Luminosity = luminosity;
 }
Example #17
0
        public void Convert_ChangeType_QuantityType_EqualsQuantityType()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(QuantityType.Luminosity, Convert.ChangeType(quantity, typeof(QuantityType)));
        }
Example #18
0
        public void Equals_NegativeRelativeTolerance_ThrowsArgumentOutOfRangeException()
        {
            var v = Luminosity.FromWatts(1);

            Assert.Throws <ArgumentOutOfRangeException>(() => v.Equals(Luminosity.FromWatts(1), -1, ComparisonType.Relative));
        }
Example #19
0
        public void Convert_ChangeType_InvalidType_ThrowsInvalidCastException()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Throws <InvalidCastException>(() => Convert.ChangeType(quantity, typeof(QuantityFormatter)));
        }
Example #20
0
		public Material GetMaterialWithOpacity(Luminosity i, double opacity)
		{
			var material = GetMaterial(i);
			return material.WithOpacity(opacity);
		}
Example #21
0
		public static void SetClickFeedback(DependencyObject i, Luminosity v) => i.Set(ClickFeedbackProperty, v);
Example #22
0
		public SolidColorBrush FromLuminosity(Luminosity luminosity)
		{
			if (LuminosityPairs.ContainsKey(luminosity))
			{
				return GetValue(LuminosityPairs[luminosity]).RequireType<SolidColorBrush>();
			}
			return MaterialPalette.Red500;
		}
Example #23
0
        public void EqualsReturnsFalseOnTypeMismatch()
        {
            Luminosity watt = Luminosity.FromWatts(1);

            Assert.False(watt.Equals(new object()));
        }
Example #24
0
 public void NumberToWattsTest() =>
 Assert.Equal(Luminosity.FromWatts(2), 2.Watts());
Example #25
0
        public void ToString_NullArgs_ThrowsArgumentNullException()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Throws <ArgumentNullException>(() => quantity.ToString(null, "g", null));
        }
Example #26
0
 public void FromWatts_WithInfinityValue_ThrowsArgumentException()
 {
     Assert.Throws <ArgumentException>(() => Luminosity.FromWatts(double.PositiveInfinity));
     Assert.Throws <ArgumentException>(() => Luminosity.FromWatts(double.NegativeInfinity));
 }
Example #27
0
        public void Convert_ToDateTime_ThrowsInvalidCastException()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Throws <InvalidCastException>(() => Convert.ToDateTime(quantity));
        }
Example #28
0
 public void FromWatts_WithNanValue_ThrowsArgumentException()
 {
     Assert.Throws <ArgumentException>(() => Luminosity.FromWatts(double.NaN));
 }
Example #29
0
        public void Convert_ToInt32_EqualsValueAsSameType()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal((int)quantity.Value, Convert.ToInt32(quantity));
        }
Example #30
0
        public void ToUnit_WithNullUnitSystem_ThrowsNullException()
        {
            var watt = Luminosity.FromWatts(1);

            Assert.Throws <ArgumentNullException>(() => watt.ToUnit(null));
        }
Example #31
0
        public void Convert_ToSingle_EqualsValueAsSameType()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal((float)quantity.Value, Convert.ToSingle(quantity));
        }
Example #32
0
        public void Convert_ChangeType_QuantityInfo_EqualsQuantityInfo()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(Luminosity.Info, Convert.ChangeType(quantity, typeof(QuantityInfo)));
        }
Example #33
0
        public void Convert_ToUInt64_EqualsValueAsSameType()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal((ulong)quantity.Value, Convert.ToUInt64(quantity));
        }
Example #34
0
        public void From_ValueAndUnit_ReturnsQuantityWithSameValueAndUnit()
        {
            var quantity00 = Luminosity.From(1, LuminosityUnit.Decawatt);

            AssertEx.EqualTolerance(1, quantity00.Decawatts, DecawattsTolerance);
            Assert.Equal(LuminosityUnit.Decawatt, quantity00.Unit);

            var quantity01 = Luminosity.From(1, LuminosityUnit.Deciwatt);

            AssertEx.EqualTolerance(1, quantity01.Deciwatts, DeciwattsTolerance);
            Assert.Equal(LuminosityUnit.Deciwatt, quantity01.Unit);

            var quantity02 = Luminosity.From(1, LuminosityUnit.Femtowatt);

            AssertEx.EqualTolerance(1, quantity02.Femtowatts, FemtowattsTolerance);
            Assert.Equal(LuminosityUnit.Femtowatt, quantity02.Unit);

            var quantity03 = Luminosity.From(1, LuminosityUnit.Gigawatt);

            AssertEx.EqualTolerance(1, quantity03.Gigawatts, GigawattsTolerance);
            Assert.Equal(LuminosityUnit.Gigawatt, quantity03.Unit);

            var quantity04 = Luminosity.From(1, LuminosityUnit.Kilowatt);

            AssertEx.EqualTolerance(1, quantity04.Kilowatts, KilowattsTolerance);
            Assert.Equal(LuminosityUnit.Kilowatt, quantity04.Unit);

            var quantity05 = Luminosity.From(1, LuminosityUnit.Megawatt);

            AssertEx.EqualTolerance(1, quantity05.Megawatts, MegawattsTolerance);
            Assert.Equal(LuminosityUnit.Megawatt, quantity05.Unit);

            var quantity06 = Luminosity.From(1, LuminosityUnit.Microwatt);

            AssertEx.EqualTolerance(1, quantity06.Microwatts, MicrowattsTolerance);
            Assert.Equal(LuminosityUnit.Microwatt, quantity06.Unit);

            var quantity07 = Luminosity.From(1, LuminosityUnit.Milliwatt);

            AssertEx.EqualTolerance(1, quantity07.Milliwatts, MilliwattsTolerance);
            Assert.Equal(LuminosityUnit.Milliwatt, quantity07.Unit);

            var quantity08 = Luminosity.From(1, LuminosityUnit.Nanowatt);

            AssertEx.EqualTolerance(1, quantity08.Nanowatts, NanowattsTolerance);
            Assert.Equal(LuminosityUnit.Nanowatt, quantity08.Unit);

            var quantity09 = Luminosity.From(1, LuminosityUnit.Petawatt);

            AssertEx.EqualTolerance(1, quantity09.Petawatts, PetawattsTolerance);
            Assert.Equal(LuminosityUnit.Petawatt, quantity09.Unit);

            var quantity10 = Luminosity.From(1, LuminosityUnit.Picowatt);

            AssertEx.EqualTolerance(1, quantity10.Picowatts, PicowattsTolerance);
            Assert.Equal(LuminosityUnit.Picowatt, quantity10.Unit);

            var quantity11 = Luminosity.From(1, LuminosityUnit.SolarLuminosity);

            AssertEx.EqualTolerance(1, quantity11.SolarLuminosities, SolarLuminositiesTolerance);
            Assert.Equal(LuminosityUnit.SolarLuminosity, quantity11.Unit);

            var quantity12 = Luminosity.From(1, LuminosityUnit.Terawatt);

            AssertEx.EqualTolerance(1, quantity12.Terawatts, TerawattsTolerance);
            Assert.Equal(LuminosityUnit.Terawatt, quantity12.Unit);

            var quantity13 = Luminosity.From(1, LuminosityUnit.Watt);

            AssertEx.EqualTolerance(1, quantity13.Watts, WattsTolerance);
            Assert.Equal(LuminosityUnit.Watt, quantity13.Unit);
        }
Example #35
0
        public void Convert_ChangeType_UnitType_EqualsUnit()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(quantity.Unit, Convert.ChangeType(quantity, typeof(LuminosityUnit)));
        }
Example #36
0
        public void ToUnit()
        {
            var watt = Luminosity.FromWatts(1);

            var decawattQuantity = watt.ToUnit(LuminosityUnit.Decawatt);

            AssertEx.EqualTolerance(DecawattsInOneWatt, (decimal)decawattQuantity.Value, DecawattsTolerance);
            Assert.Equal(LuminosityUnit.Decawatt, decawattQuantity.Unit);

            var deciwattQuantity = watt.ToUnit(LuminosityUnit.Deciwatt);

            AssertEx.EqualTolerance(DeciwattsInOneWatt, (decimal)deciwattQuantity.Value, DeciwattsTolerance);
            Assert.Equal(LuminosityUnit.Deciwatt, deciwattQuantity.Unit);

            var femtowattQuantity = watt.ToUnit(LuminosityUnit.Femtowatt);

            AssertEx.EqualTolerance(FemtowattsInOneWatt, (decimal)femtowattQuantity.Value, FemtowattsTolerance);
            Assert.Equal(LuminosityUnit.Femtowatt, femtowattQuantity.Unit);

            var gigawattQuantity = watt.ToUnit(LuminosityUnit.Gigawatt);

            AssertEx.EqualTolerance(GigawattsInOneWatt, (decimal)gigawattQuantity.Value, GigawattsTolerance);
            Assert.Equal(LuminosityUnit.Gigawatt, gigawattQuantity.Unit);

            var kilowattQuantity = watt.ToUnit(LuminosityUnit.Kilowatt);

            AssertEx.EqualTolerance(KilowattsInOneWatt, (decimal)kilowattQuantity.Value, KilowattsTolerance);
            Assert.Equal(LuminosityUnit.Kilowatt, kilowattQuantity.Unit);

            var megawattQuantity = watt.ToUnit(LuminosityUnit.Megawatt);

            AssertEx.EqualTolerance(MegawattsInOneWatt, (decimal)megawattQuantity.Value, MegawattsTolerance);
            Assert.Equal(LuminosityUnit.Megawatt, megawattQuantity.Unit);

            var microwattQuantity = watt.ToUnit(LuminosityUnit.Microwatt);

            AssertEx.EqualTolerance(MicrowattsInOneWatt, (decimal)microwattQuantity.Value, MicrowattsTolerance);
            Assert.Equal(LuminosityUnit.Microwatt, microwattQuantity.Unit);

            var milliwattQuantity = watt.ToUnit(LuminosityUnit.Milliwatt);

            AssertEx.EqualTolerance(MilliwattsInOneWatt, (decimal)milliwattQuantity.Value, MilliwattsTolerance);
            Assert.Equal(LuminosityUnit.Milliwatt, milliwattQuantity.Unit);

            var nanowattQuantity = watt.ToUnit(LuminosityUnit.Nanowatt);

            AssertEx.EqualTolerance(NanowattsInOneWatt, (decimal)nanowattQuantity.Value, NanowattsTolerance);
            Assert.Equal(LuminosityUnit.Nanowatt, nanowattQuantity.Unit);

            var petawattQuantity = watt.ToUnit(LuminosityUnit.Petawatt);

            AssertEx.EqualTolerance(PetawattsInOneWatt, (decimal)petawattQuantity.Value, PetawattsTolerance);
            Assert.Equal(LuminosityUnit.Petawatt, petawattQuantity.Unit);

            var picowattQuantity = watt.ToUnit(LuminosityUnit.Picowatt);

            AssertEx.EqualTolerance(PicowattsInOneWatt, (decimal)picowattQuantity.Value, PicowattsTolerance);
            Assert.Equal(LuminosityUnit.Picowatt, picowattQuantity.Unit);

            var solarluminosityQuantity = watt.ToUnit(LuminosityUnit.SolarLuminosity);

            AssertEx.EqualTolerance(SolarLuminositiesInOneWatt, (decimal)solarluminosityQuantity.Value, SolarLuminositiesTolerance);
            Assert.Equal(LuminosityUnit.SolarLuminosity, solarluminosityQuantity.Unit);

            var terawattQuantity = watt.ToUnit(LuminosityUnit.Terawatt);

            AssertEx.EqualTolerance(TerawattsInOneWatt, (decimal)terawattQuantity.Value, TerawattsTolerance);
            Assert.Equal(LuminosityUnit.Terawatt, terawattQuantity.Unit);

            var wattQuantity = watt.ToUnit(LuminosityUnit.Watt);

            AssertEx.EqualTolerance(WattsInOneWatt, (decimal)wattQuantity.Value, WattsTolerance);
            Assert.Equal(LuminosityUnit.Watt, wattQuantity.Unit);
        }
Example #37
0
        public void Convert_ChangeType_BaseDimensions_EqualsBaseDimensions()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(Luminosity.BaseDimensions, Convert.ChangeType(quantity, typeof(BaseDimensions)));
        }
Example #38
0
        public void ToBaseUnit_ReturnsQuantityWithBaseUnit()
        {
            var quantityInBaseUnit = Luminosity.FromWatts(1).ToBaseUnit();

            Assert.Equal(Luminosity.BaseUnit, quantityInBaseUnit.Unit);
        }
Example #39
0
        public void GetHashCode_Equals()
        {
            var quantity = Luminosity.FromWatts(1.0);

            Assert.Equal(new { Luminosity.QuantityType, quantity.Value, quantity.Unit }.GetHashCode(), quantity.GetHashCode());
        }
Example #40
0
        public void CompareToThrowsOnTypeMismatch()
        {
            Luminosity watt = Luminosity.FromWatts(1);

            Assert.Throws <ArgumentException>(() => watt.CompareTo(new object()));
        }
Example #41
0
 public static void SetClickFeedback(DependencyObject i, Luminosity v) => i.Set(ClickFeedbackProperty, v);
Example #42
0
        public void CompareToThrowsOnNull()
        {
            Luminosity watt = Luminosity.FromWatts(1);

            Assert.Throws <ArgumentNullException>(() => watt.CompareTo(null));
        }