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