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); }
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); }
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); }