import { Measure } from "../../measure/numberMeasure" ; import * as Quantity from "../quantities" ; describe ( "Quantities" , ( ) => { const QuantityNames = Object . keys ( Quantity ) ; function forEachQuantity ( fn ) { QuantityNames . forEach ( name => { fn ( ( Quantity as any ) [ name ] , name ) ; } ) ; } it ( "no two quantities should have the same dimensions" , ( ) => { forEachQuantity ( ( a , aName ) => { forEachQuantity ( ( b , bName ) => { if ( aName === bName ) { return ; } try { expect ( a . unit ) . not . toEqual ( b . unit ) ; } catch ( e ) { console . log ( `Quantities '${ aName }' and '${ bName }' are the same.` ) ; throw e ; } } ) ; } ) ; } ) ; it ( "all quantities should be normalized" , ( ) => { forEachQuantity ( quantity => { expect ( quantity . value ) . toBe ( 1 ) ; } ) ; } ) ; } ) ;