@@ -1768,5 +1768,56 @@ public void TestMeasurementTypes()
1768
1768
Assert . IsTrue ( a . GetMeasurementType ( ) . Equals ( UnitOfMeasure . MeasurementType . POWER ) ) ;
1769
1769
}
1770
1770
1771
+ [ TestMethod ]
1772
+ public void TestPerm ( )
1773
+ {
1774
+ UnitOfMeasure inHg = sys . GetUOM ( Unit . IN_HG ) ;
1775
+ UnitOfMeasure hr = sys . GetUOM ( Unit . HOUR ) ;
1776
+ UnitOfMeasure ft2 = sys . GetUOM ( Unit . SQUARE_FOOT ) ;
1777
+ UnitOfMeasure s = sys . GetUOM ( Unit . SECOND ) ;
1778
+ UnitOfMeasure day = sys . GetUOM ( Unit . DAY ) ;
1779
+ UnitOfMeasure msq = sys . GetUOM ( Unit . SQUARE_METRE ) ;
1780
+ UnitOfMeasure Pa = sys . GetUOM ( Unit . PASCAL ) ;
1781
+ UnitOfMeasure ng = sys . GetUOM ( Prefix . NANO , Unit . GRAM ) ;
1782
+ UnitOfMeasure g = sys . GetUOM ( Unit . GRAM ) ;
1783
+ UnitOfMeasure grain = sys . GetUOM ( Unit . GRAIN ) ;
1784
+
1785
+ // mm of Mercury pressure
1786
+ UnitOfMeasure mmHg = sys . CreateScalarUOM ( UnitType . PRESSURE , "mmHg" , "mmHg" , "mmHg" ) ;
1787
+ mmHg . SetConversion ( 133.3223684d , Pa ) ;
1788
+
1789
+ // US perm
1790
+ UnitOfMeasure us1 = sys . CreateQuotientUOM ( grain , inHg ) ;
1791
+ UnitOfMeasure us2 = sys . CreateQuotientUOM ( us1 , ft2 ) ;
1792
+ UnitOfMeasure perm = sys . CreateQuotientUOM ( UnitType . UNCLASSIFIED , "perm" , "perm" , "gn/hr/ft2/inHg" , us2 , hr ) ;
1793
+
1794
+ // metric perm
1795
+ UnitOfMeasure m1 = sys . CreateQuotientUOM ( g , day ) ;
1796
+ UnitOfMeasure m2 = sys . CreateQuotientUOM ( m1 , msq ) ;
1797
+ UnitOfMeasure mperm = sys . CreateQuotientUOM ( UnitType . UNCLASSIFIED , "mperm" , "mperm" , "g/day/m2/mmHg" , m2 , mmHg ) ;
1798
+
1799
+ // Equivalent SI unit
1800
+ UnitOfMeasure si1 = sys . CreateQuotientUOM ( ng , s ) ;
1801
+ UnitOfMeasure si2 = sys . CreateQuotientUOM ( si1 , msq ) ;
1802
+ UnitOfMeasure eqSI = sys . CreateQuotientUOM ( si2 , Pa ) ;
1803
+
1804
+ // US perm to equivalent SI
1805
+ double f = perm . GetConversionFactor ( eqSI ) ;
1806
+ Assert . IsTrue ( IsCloseTo ( f , 57.214184d , DELTA6 ) ) ;
1807
+ f = eqSI . GetConversionFactor ( perm ) ;
1808
+ Assert . IsTrue ( IsCloseTo ( f , 0.0174781d , DELTA6 ) ) ;
1809
+
1810
+ // metric perm to US perm
1811
+ f = perm . GetConversionFactor ( mperm ) ;
1812
+ Assert . IsTrue ( IsCloseTo ( f , 0.659053d , DELTA6 ) ) ;
1813
+ f = mperm . GetConversionFactor ( perm ) ;
1814
+ Assert . IsTrue ( IsCloseTo ( f , 1.517328d , DELTA6 ) ) ;
1815
+
1816
+ // metric perm to equivalent SI
1817
+ f = mperm . GetConversionFactor ( eqSI ) ;
1818
+ Assert . IsTrue ( IsCloseTo ( f , 86.812694d , DELTA6 ) ) ;
1819
+ f = eqSI . GetConversionFactor ( mperm ) ;
1820
+ Assert . IsTrue ( IsCloseTo ( f , 0.0115190d , DELTA6 ) ) ;
1821
+ }
1771
1822
} // end TestUnits
1772
1823
} // end namespace
0 commit comments