public void ToFractionalFootRepresentations() { var units = new UnitsManager(); //test just the fractional case var length = new Units.Length(0.0762, units); //.25" Assert.AreEqual("3\"", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = -0.0762; Assert.AreEqual("-3\"", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = 0.3048; //1ft. Assert.AreEqual("1' 0\"", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = -0.3048; Assert.AreEqual("-1' 0\"", length.ToString(DynamoLengthUnit.FractionalFoot)); //test some edge cases length.Value = 0.0; Assert.AreEqual("0' 0\"", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = 0.003175; //1/8" Assert.AreEqual("1/8\"", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = 0.301752; //.99ft Assert.AreEqual("11 29/32\"", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = 0.3044952; //.999ft Assert.AreEqual("1'", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = 0.35560000000142239; //1'2" Assert.AreEqual("1' 2\"", length.ToString(DynamoLengthUnit.FractionalFoot)); length.Value = -0.35560000000142239; //-1'2" Assert.AreEqual("-1' 2\"", length.ToString(DynamoLengthUnit.FractionalFoot)); }
public LengthInput() { _measure = new Units.Length(0.0); OutPortData.Add(new PortData("length", "The length. Stored internally as decimal meters.", typeof(FScheme.Value.Container))); RegisterAllPorts(); }
public void UnitsMath() { var units = new UnitsManager(); var length = new Units.Length(2.0, units); var area = new Units.Area(2.0, units); var volume = new Units.Volume(2.0, units); //addition var length_add = length + length; Assert.AreEqual(4, length_add.Value); var area_add = area + area; Assert.AreEqual(4, area_add.Value); var volume_add = volume + volume; Assert.AreEqual(4, volume_add.Value); Assert.Throws <UnitsException>(() => { var test = length + area; }); Assert.Throws <UnitsException>(() => { var test = area + volume; }); Assert.Throws <UnitsException>(() => { var test = length + volume; }); //subtraction var length_sub = length - length; Assert.AreEqual(0, length_sub.Value); var area_sub = area - area; Assert.AreEqual(0, area_sub.Value); var volume_sub = volume - volume; Assert.AreEqual(0, volume_sub.Value); Assert.Throws <UnitsException>(() => { var test = length - area; }); Assert.Throws <UnitsException>(() => { var test = area - volume; }); Assert.Throws <UnitsException>(() => { var test = length - volume; }); Assert.Throws <UnitsException>(() => { var test = area - length; }); Assert.Throws <UnitsException>(() => { var test = volume - area; }); Assert.Throws <UnitsException>(() => { var test = volume - length; }); //multiplication Assert.AreEqual(4, (length * length).Value); Assert.IsInstanceOf <Area>(length * length); Assert.AreEqual(4, (length * area).Value); Assert.IsInstanceOf <Volume>(length * area); Assert.Throws <UnitsException>(() => { var test = area * area; }); Assert.Throws <UnitsException>(() => { var test = volume * area; }); Assert.Throws <UnitsException>(() => { var test = length * volume; }); Assert.Throws <UnitsException>(() => { var test = volume * volume; }); //division Assert.AreEqual(1, length / length); Assert.AreEqual(1, area / area); Assert.AreEqual(1, volume / volume); Assert.Throws <UnitsException>(() => { var test = length / area; }); Assert.Throws <UnitsException>(() => { var test = area / volume; }); Assert.Throws <UnitsException>(() => { var test = length / volume; }); //modulo var length_mod = length % length; Assert.AreEqual(0, length_mod.Value); var area_mode = area % area; Assert.AreEqual(0, area_mode.Value); var volume_mod = volume % volume; Assert.AreEqual(0, volume_mod.Value); Assert.Throws <UnitsException>(() => { var test = length % area; }); Assert.Throws <UnitsException>(() => { var test = area % volume; }); Assert.Throws <UnitsException>(() => { var test = length % volume; }); Assert.Throws <UnitsException>(() => { var test = area % length; }); Assert.Throws <UnitsException>(() => { var test = volume % area; }); Assert.Throws <UnitsException>(() => { var test = volume % length; }); //ensure that when a formula is unit + double it returns a unit //and when it is double + unit, it returns a double Assert.AreEqual(new Length(length.Value + 2.0, units), length + 2.0); Assert.AreEqual(4.0, 2.0 + length); Assert.AreEqual(new Area(area.Value + 2.0, units), area + 2.0); Assert.AreEqual(4.0, 2.0 + area); Assert.AreEqual(new Volume(volume.Value + 2.0, units), volume + 2.0); Assert.AreEqual(4.0, 2.0 + volume); }
public void UnitsMath() { var length = new Units.Length(2.0); var area = new Units.Area(2.0); var volume = new Units.Volume(2.0); //addition var length_add = length + length; Assert.AreEqual(4, length_add.Value); var area_add = area + area; Assert.AreEqual(4, area_add.Value); var volume_add = volume + volume; Assert.AreEqual(4, volume_add.Value); Assert.Throws<UnitsException>(() => { var test = length + area; }); Assert.Throws<UnitsException>(() => { var test = area + volume; }); Assert.Throws<UnitsException>(() => { var test = length + volume; }); //subtraction var length_sub = length - length; Assert.AreEqual(0, length_sub.Value); var area_sub = area - area; Assert.AreEqual(0, area_sub.Value); var volume_sub = volume - volume; Assert.AreEqual(0, volume_sub.Value); Assert.Throws<UnitsException>(() => { var test = length - area; }); Assert.Throws<UnitsException>(() => { var test = area - volume; }); Assert.Throws<UnitsException>(() => { var test = length - volume; }); Assert.Throws<UnitsException>(() => { var test = area - length; }); Assert.Throws<UnitsException>(() => { var test = volume - area; }); Assert.Throws<UnitsException>(() => { var test = volume - length; }); //multiplication Assert.AreEqual(4, (length * length).Value); Assert.IsInstanceOf<Area>(length * length); Assert.AreEqual(4, (length * area).Value); Assert.IsInstanceOf<Volume>(length * area); Assert.Throws<UnitsException>(() => { var test = area * area; }); Assert.Throws<UnitsException>(() => { var test = volume * area; }); Assert.Throws<UnitsException>(() => { var test = length * volume; }); Assert.Throws<UnitsException>(() => { var test = volume * volume; }); //division Assert.AreEqual(1, length / length); Assert.AreEqual(1, area / area); Assert.AreEqual(1, volume / volume); Assert.Throws<UnitsException>(() => { var test = length / area; }); Assert.Throws<UnitsException>(() => { var test = area / volume; }); Assert.Throws<UnitsException>(() => { var test = length / volume; }); //modulo var length_mod = length%length; Assert.AreEqual(0, length_mod.Value); var area_mode = area%area; Assert.AreEqual(0, area_mode.Value); var volume_mod = volume%volume; Assert.AreEqual(0, volume_mod.Value); Assert.Throws<UnitsException>(() => { var test = length % area; }); Assert.Throws<UnitsException>(() => { var test = area % volume; }); Assert.Throws<UnitsException>(() => { var test = length % volume; }); Assert.Throws<UnitsException>(() => { var test = area % length; }); Assert.Throws<UnitsException>(() => { var test = volume % area; }); Assert.Throws<UnitsException>(() => { var test = volume % length; }); //ensure that when a formula is unit + double it returns a unit //and when it is double + unit, it returns a double Assert.AreEqual(new Length(length.Value + 2.0), length + 2.0); Assert.AreEqual(4.0, 2.0 + length); Assert.AreEqual(new Area(area.Value + 2.0), area + 2.0); Assert.AreEqual(4.0, 2.0 + area); Assert.AreEqual(new Volume(volume.Value + 2.0), volume + 2.0); Assert.AreEqual(4.0, 2.0 + volume); }
public void ToFractionalFootRepresentations() { //test just the fractional case var length = new Units.Length(0.0762); //.25" SIUnit.LengthUnit = DynamoLengthUnit.FractionalFoot; Assert.AreEqual("3\"", length.ToString()); length.Value = -0.0762; Assert.AreEqual("-3\"", length.ToString()); length.Value = 0.3048; //1ft. Assert.AreEqual("1' 0\"", length.ToString()); length.Value = -0.3048; Assert.AreEqual("-1' 0\"", length.ToString()); //test some edge cases length.Value = 0.0; Assert.AreEqual("0' 0\"", length.ToString()); length.Value = 0.003175; //1/8" Assert.AreEqual("1/8\"", length.ToString()); length.Value = 0.301752; //.99ft Assert.AreEqual("11 29/32\"", length.ToString()); length.Value = 0.3044952; //.999ft Assert.AreEqual("1'", length.ToString()); length.Value = 0.35560000000142239; //1'2" Assert.AreEqual("1' 2\"", length.ToString()); length.Value = -0.35560000000142239; //-1'2" Assert.AreEqual("-1' 2\"", length.ToString()); }
public LengthInput() { _measure = new Units.Length(0.0, dynSettings.Controller.UnitsManager); OutPortData.Add(new PortData("length", "The length. Stored internally as decimal meters.", typeof(FScheme.Value.Container))); RegisterAllPorts(); }
public LengthFromNumber() { _measure = new Units.Length(0.0); }
public void UnitsNegatives() { //construction Assert.DoesNotThrow(() => { var test = new Units.Length(-2.0); }); Assert.Throws<MathematicalArgumentException>(() => { var test = new Area(-2.0); }); Assert.Throws<MathematicalArgumentException>(() => { var test = new Volume(-2.0); }); var length = new Units.Length(2.0); var area = new Area(2.0); var volume = new Volume(2.0); Assert.Throws<MathematicalArgumentException>(() => { var test = new Area(10.0) - new Area(12.0); }); Assert.Throws<MathematicalArgumentException>(() => { var test = new Volume(10.0) - new Volume(12.0); }); }
public void UnitsMath() { var length = new Units.Length(2.0); var area = new Units.Area(2.0); var volume = new Units.Volume(2.0); //addition var length_add = length + length; Assert.AreEqual(4, length_add.Value); var area_add = area + area; Assert.AreEqual(4, area_add.Value); var volume_add = volume + volume; Assert.AreEqual(4, volume_add.Value); Assert.Throws<UnitsException>(() => { var test = length + area; }); Assert.Throws<UnitsException>(() => { var test = area + volume; }); Assert.Throws<UnitsException>(() => { var test = length + volume; }); //subtraction var length_sub = length - length; Assert.AreEqual(0, length_sub.Value); var area_sub = area - area; Assert.AreEqual(0, area_sub.Value); var volume_sub = volume - volume; Assert.AreEqual(0, volume_sub.Value); Assert.Throws<UnitsException>(() => { var test = length - area; }); Assert.Throws<UnitsException>(() => { var test = area - volume; }); Assert.Throws<UnitsException>(() => { var test = length - volume; }); Assert.Throws<UnitsException>(() => { var test = area - length; }); Assert.Throws<UnitsException>(() => { var test = volume - area; }); Assert.Throws<UnitsException>(() => { var test = volume - length; }); //multiplication Assert.AreEqual(4, (length * length).Value); Assert.Throws<UnitsException>(() => { var test = area * area; }); Assert.Throws<UnitsException>(() => { var test = volume * area; }); Assert.Throws<UnitsException>(() => { var test = length * volume; }); //division Assert.AreEqual(1, length / length); Assert.AreEqual(1, area / area); Assert.AreEqual(1, volume / volume); Assert.Throws<UnitsException>(() => { var test = length / area; }); Assert.Throws<UnitsException>(() => { var test = area / volume; }); Assert.Throws<UnitsException>(() => { var test = length / volume; }); //modulo var length_mod = length%length; Assert.AreEqual(0, length_mod.Value); var area_mode = area%area; Assert.AreEqual(0, area_mode.Value); var volume_mod = volume%volume; Assert.AreEqual(0, volume_mod.Value); Assert.Throws<UnitsException>(() => { var test = length % area; }); Assert.Throws<UnitsException>(() => { var test = area % volume; }); Assert.Throws<UnitsException>(() => { var test = length % volume; }); Assert.Throws<UnitsException>(() => { var test = area % length; }); Assert.Throws<UnitsException>(() => { var test = volume % area; }); Assert.Throws<UnitsException>(() => { var test = volume % length; }); }