public void Multiplication() { fmw1 = new FloatingMeasureWrapper(10, fV); // multiplication by number fmw1 *= 2; Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(20, fV)); // multiplication by measure fmw1 *= cV; Assert.AreEqual(fmw1.PrintShort(), (new FloatingMeasureWrapper(20, fV * cV)).PrintShort()); // multiplication by floating measure fmw2 = new FloatingMeasureWrapper(30, km); fmw1 *= fmw2; Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(20 * 30, km * fV * cV)); Assert.IsTrue(fmw2 == new FloatingMeasureWrapper(30, km)); // multiplication by floating measure and value fmw1 *= fmw2 * 10; Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(20 * 30 * 30 * 10, km * km * fV * cV)); Assert.IsTrue(fmw2 == new FloatingMeasureWrapper(30, km)); // multiplication by floating measure and complex mixture of measure and values fmw1 = fmw2 * km / h * 2 / 3 * fV; Assert.AreEqual(fmw1.PrintShort(), (new FloatingMeasureWrapper(30 * 2 / 3, km * km / h * fV)).PrintShort()); Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(30 * 2 / 3, km * km / h * fV)); Assert.IsTrue(fmw2 == new FloatingMeasureWrapper(30, km)); }
public void Precision() { fmw1 = new FloatingMeasureWrapper(20, fV); // check: precision sets AND activates precision fmw1.Precision(new FloatingMeasureWrapper(1, fV)); Assert.AreEqual(fmw1.PrintShort(), "20*fV"); // deactivate precision fmw1.PrecisionActive(false); Assert.AreNotEqual(fmw1.PrintShort(), "20*fV"); // check other precisions fmw1.Precision(new FloatingMeasureWrapper(0.1, fV)); Assert.AreEqual(fmw1.PrintShort(), "20.0*fV"); fmw1.Precision(new FloatingMeasureWrapper(0.01, fV)); Assert.AreEqual(fmw1.PrintShort(), "20.00*fV"); }