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 Assignment() { fmw1 = new FloatingMeasureWrapper(10, fV); fmw2.Copy(fmw1); fmw1 *= 2; Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(20, fV)); Assert.IsTrue(fmw2 == new FloatingMeasureWrapper(10, fV)); }
public void Simplify() { fmw1 = new FloatingMeasureWrapper(10, fV / GV); fmw1.Normalize(); Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(10 * 1e-15 / 1e+9, V / V)); fmw1.Simplify(); Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(10 * 1e-15 / 1e+9, cmIdent)); }
public void Compatible() { fmw1 = new FloatingMeasureWrapper(10, fV / GA); fmw2 = new FloatingMeasureWrapper(0.000234, GV / mA); // check compatibility with floating measure arg. Assert.IsTrue(fmw2.Compatible(fmw1)); Assert.IsTrue(fmw1.Compatible(fmw2)); // check compatibility with complex measure arg. Assert.IsTrue(fmw2.Compatible(fV / GA)); Assert.IsTrue(fmw1.Compatible(GV / mA)); }
public void Comparison() { // equality fmw1 = new FloatingMeasureWrapper(10, fV / GV); fmw2 = new FloatingMeasureWrapper(10, fV / GV); Assert.IsTrue(fmw1 == fmw2); Assert.IsTrue(fmw1 >= fmw2); Assert.IsTrue(fmw1 <= fmw2); Assert.IsFalse(fmw1 != fmw2); Assert.IsFalse(fmw1 > fmw2); Assert.IsFalse(fmw1 < fmw2); // equality with different units fmw1 = new FloatingMeasureWrapper(0.01, pV / GV); Assert.IsTrue(fmw1 == fmw2); Assert.IsTrue(fmw1 >= fmw2); Assert.IsTrue(fmw1 <= fmw2); Assert.IsFalse(fmw1 != fmw2); Assert.IsFalse(fmw1 > fmw2); Assert.IsFalse(fmw1 < fmw2); // if comparing partners are incompatible --> all false, except != fmw2 = new FloatingMeasureWrapper(10, fV / GA); Assert.IsTrue(fmw1 != fmw2); Assert.IsFalse(fmw1 == fmw2); Assert.IsFalse(fmw1 >= fmw2); Assert.IsFalse(fmw1 <= fmw2); Assert.IsFalse(fmw1 > fmw2); Assert.IsFalse(fmw1 < fmw2); // unequal by value fmw2 = new FloatingMeasureWrapper(9.95, fV / GV); Assert.IsTrue(fmw1 != fmw2); Assert.IsFalse(fmw1 == fmw2); Assert.IsTrue(fmw1 >= fmw2); Assert.IsFalse(fmw1 <= fmw2); Assert.IsTrue(fmw1 > fmw2); Assert.IsFalse(fmw1 < fmw2); // setting precision --> equality: // set precision for right partner --> ruling precision fmw1.Precision(new FloatingMeasureWrapper(0.1, fV / GV)); Assert.IsFalse(fmw1 != fmw2); Assert.IsTrue(fmw1 == fmw2); Assert.IsTrue(fmw1 >= fmw2); Assert.IsTrue(fmw1 <= fmw2); Assert.IsFalse(fmw1 > fmw2); Assert.IsFalse(fmw1 < fmw2); }
public void Division() { fmw1 = new FloatingMeasureWrapper(30, km); fmw2 = new FloatingMeasureWrapper(20, h); fmw3 = fmw1 / fmw2; // check result Assert.IsTrue(fmw3 == new FloatingMeasureWrapper((Double)30 / 20, km / h)); // check other variables stay unchanged fmw3 *= 2; Assert.IsTrue(fmw3 == new FloatingMeasureWrapper(2 * 30 / 20, km / h)); Assert.IsTrue(fmw1 == new FloatingMeasureWrapper(30, km)); Assert.IsTrue(fmw2 == new FloatingMeasureWrapper(20, h)); }
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"); }
public void Getter() { fmw1 = new FloatingMeasureWrapper(11.11, fV / GV); // check raw value Assert.IsTrue(fmw1.RawValue() == 11.11); Assert.IsTrue(fmw1.Measure() == (fV / GV)); // check rounded value fmw1.Precision(new FloatingMeasureWrapper(10, fV / GV)); Assert.IsTrue(fmw1.Value() == 10); fmw1.Precision(new FloatingMeasureWrapper(1, fV / GV)); Assert.IsTrue(fmw1.Value() == 11); fmw1.Precision(new FloatingMeasureWrapper(5, fV / GV)); Assert.IsTrue(fmw1.Value() == 11); fmw1.Precision(new FloatingMeasureWrapper(0.1, fV / GV)); Assert.IsTrue(fmw1.Value() == 11.1); fmw1.Precision(new FloatingMeasureWrapper(0.5, fV / GV)); Assert.IsTrue(fmw1.Value() == 11.1); fmw1.Precision(new FloatingMeasureWrapper(0.01, fV / GV)); Assert.IsTrue(fmw1.Value() == 11.11); fmw1.Precision(new FloatingMeasureWrapper(0.05, fV / GV)); Assert.IsTrue(fmw1.Value() == 11.11); }
public static void InitFloatingMeasureWrapperTest(TestContext context) { fmw1 = new FloatingMeasureWrapper(); fmw2 = new FloatingMeasureWrapper(); fmw3 = new FloatingMeasureWrapper(); }