public void TestComparison() { UnitOfMeasure newton = sys.GetUOM(Unit.NEWTON); UnitOfMeasure metre = sys.GetUOM(Unit.METRE); UnitOfMeasure cm = sys.GetUOM(Prefix.CENTI, metre); double amount = 10; Quantity qN = new Quantity(amount, newton); Quantity qm10 = new Quantity(amount, metre); Quantity qm1 = new Quantity(1, metre); Quantity qcm = new Quantity(amount, cm); Assert.IsTrue(qN.Compare(qN) == 0); Assert.IsTrue(qm10.Compare(qm1) == 1); Assert.IsTrue(qm1.Compare(qm10) == -1); Assert.IsTrue(qcm.Compare(qm1) == -1); Assert.IsTrue(qm1.Compare(qcm) == 1); try { qN.Compare(qm10); Assert.Fail("not comparable)"); } catch (Exception) { } Quantity conc = new Quantity(0.0025, sys.GetUOM(Unit.MOLARITY)); double pH = -Math.Log10(conc.Amount); Assert.IsTrue(IsCloseTo(pH, 2.60, DELTA2)); }