public void Constructor_AssignsPropertiesForCustomQuantity()
        {
            var expectedZero      = new HowMuch(10, HowMuchUnit.Some);
            var expectedUnitInfos = new UnitInfo[]
            {
                new UnitInfo(HowMuchUnit.Some, "Some", BaseUnits.Undefined),
                new UnitInfo(HowMuchUnit.ATon, "Tons", BaseUnits.Undefined),
                new UnitInfo(HowMuchUnit.AShitTon, "ShitTons", BaseUnits.Undefined)
            };
            var expectedBaseUnit       = HowMuchUnit.Some;
            var expectedQuantityType   = QuantityType.Undefined;
            var expectedBaseDimensions = BaseDimensions.Dimensionless;

            var info = new QuantityInfo(nameof(HowMuch), typeof(HowMuchUnit), expectedUnitInfos,
                                        expectedBaseUnit, expectedZero, expectedBaseDimensions);

            Assert.Equal(expectedZero, info.Zero);
            Assert.Equal(nameof(HowMuch), info.Name);
            Assert.Equal(expectedUnitInfos, info.UnitInfos);
            Assert.Equal(expectedQuantityType, info.QuantityType);
            Assert.Equal(expectedBaseDimensions, info.BaseDimensions);

            // Obsolete members
            Assert.Equal(expectedBaseUnit, info.BaseUnit);
            Assert.Equal(new[] { nameof(HowMuchUnit.Some), nameof(HowMuchUnit.ATon), nameof(HowMuchUnit.AShitTon) }, info.UnitNames);
        }
Beispiel #2
0
        public void HowMuchHouseTest()
        {
            HowMuchModel model   = new HowMuchModel(1500);
            HowMuch      howMuch = new HowMuch(model);
            double       target  = Math.Round(howMuch.Algorithm(), 2);

            Assert.Equal(279422.43, target);
        }
Beispiel #3
0
        public void Parse_MappedCustomUnit()
        {
            var unitAbbreviationsCache = new UnitAbbreviationsCache();

            unitAbbreviationsCache.MapUnitToAbbreviation(HowMuchUnit.Some, "fooh");
            var quantityParser = new QuantityParser(unitAbbreviationsCache);

            HowMuch q = quantityParser.Parse <HowMuch, HowMuchUnit>("1 fooh",
                                                                    null,
                                                                    (value, unit) => new HowMuch((double)value, unit));

            Assert.Equal(HowMuchUnit.Some, q.Unit);
            Assert.Equal(1, q.Value);
        }
        public void Parse_WithSingleCaseInsensitiveMatch_ParsesWithMatchedUnit()
        {
            var unitAbbreviationsCache = new UnitAbbreviationsCache();

            unitAbbreviationsCache.MapUnitToAbbreviation(HowMuchUnit.Some, "foo");
            var quantityParser = new QuantityParser(unitAbbreviationsCache);

            HowMuch q = quantityParser.Parse <HowMuch, HowMuchUnit>("1 FOO",
                                                                    null,
                                                                    (value, unit) => new HowMuch((double)value, unit));

            Assert.Equal(HowMuchUnit.Some, q.Unit);
            Assert.Equal(1, q.Value);
        }