module Numeric.Units.Dimensional.QuantitiesTest where import Numeric.Units.Dimensional.Prelude import qualified Prelude -- These definitions simply verify that the type synonyms are -- consistent with the appropriate units from table 2. If the -- definitions compile the type synonyms are good. x1 :: Area Double x1 = 1 *~ meter ^ pos2 x2 :: Volume Double x2 = 1 *~ meter ^ pos3 x3 :: Velocity Double x3 = 1 *~ (meter / second) x4 :: Acceleration Double x4 = 1 *~ (meter / second ^ pos2) x5 :: WaveNumber Double x5 = 1 *~ meter ^ neg1 x6 :: Density Double x6 = 1 *~ (kilo gram / meter ^ pos3) x7 :: SpecificVolume Double x7 = 1 *~ (meter ^ pos3 / kilo gram) x8 :: CurrentDensity Double x8 = 1 *~ (ampere / meter ^ pos2) x9 :: MagneticFieldStrength Double x9 = 1 *~ (ampere / meter) x10 :: Concentration Double x10 = 1 *~ (mole / meter ^ pos3) x11 :: Luminance Double x11 = 1 *~ (candela / meter ^ pos2) -- These definitions simply verify that the type synonyms are -- consistent with the appropriate units from table 3. If the -- definitions compile the type synonyms are good. y1 :: PlaneAngle Double y1 = 1 *~ (meter / meter) y2 :: SolidAngle Double y2 = 1 *~ (meter ^ pos2 / meter ^ pos2) y3 :: Frequency Double y3 = 1 *~ (one / second) y4 :: Force Double y4 = 1 *~ (meter * kilo gram / second ^ pos2) y5 :: Pressure Double y5 = 1 *~ (newton / meter ^ pos2) y6 :: Energy Double y6 = 1 *~ (newton * meter) y7 :: Power Double y7 = 1 *~ (joule / second) y8 :: ElectricCharge Double y8 = 1 *~ (second * ampere) y9 :: ElectricPotential Double y9 = 1 *~ (watt / ampere) y10 :: Capacitance Double y10 = 1 *~ (coulomb / volt) y11 :: ElectricResistance Double y11 = 1 *~ (volt / ampere) y12 :: ElectricConductance Double y12 = 1 *~ (ampere / volt) y13 :: MagneticFlux Double y13 = 1 *~ (volt * second) y14 :: MagneticFluxDensity Double y14 = 1 *~ (weber / meter ^ pos2) y15 :: Inductance Double y15 = 1 *~ (weber / ampere) y16 :: LuminousFlux Double y16 = 1 *~ (candela * steradian) y17 :: Illuminance Double y17 = 1 *~ (lumen / meter ^ pos2) y18 :: Activity Double y18 = 1 *~ (one / second) y19 :: AbsorbedDose Double y19 = 1 *~ (joule / kilo gram) y20 :: DoseEquivalent Double y20 = 1 *~ (joule / kilo gram) y21 :: CatalyticActivity Double y21 = 1 *~ (mole / second) -- Verification of table 4. If the definitions compile the type -- synonyms are good. z1 :: AngularVelocity Double z1 = 1 *~ (radian / second) z2 :: AngularAcceleration Double z2 = 1 *~ (radian / second ^ pos2) z3 :: DynamicViscosity Double z3 = 1 *~ (pascal * second) z4 :: MomentOfForce Double z4 = 1 *~ (newton * meter) z5 :: SurfaceTension Double z5 = 1 *~ (newton / meter) z6 :: HeatFluxDensity Double z6 = 1 *~ (watt / meter ^ pos2) z7 :: RadiantIntensity Double z7 = 1 *~ (watt / steradian) z8 :: Radiance Double z8 = 1 *~ (watt / (meter ^ pos2 * steradian)) z9 :: HeatCapacity Double z9 = 1 *~ (joule / kelvin) z10 :: SpecificHeatCapacity Double z10 = 1 *~ (joule / (kilo gram * kelvin)) z11 :: ThermalConductivity Double z11 = 1 *~ (watt / (meter * kelvin)) z12 :: EnergyDensity Double z12 = 1 *~ (joule / meter ^ pos3) z13 :: ElectricFieldStrength Double z13 = 1 *~ (volt / meter) z14 :: ElectricChargeDensity Double z14 = 1 *~ (coulomb / meter ^ pos3) z15 :: ElectricFluxDensity Double z15 = 1 *~ (coulomb / meter ^ pos2) z16 :: Permittivity Double z16 = 1 *~ (farad / meter) z17 :: Permeability Double z17 = 1 *~ (henry / meter) z18 :: MolarEnergy Double z18 = 1 *~ (joule / mole) z19 :: MolarEntropy Double z19 = 1 *~ (joule / (mole * kelvin)) z20 :: Exposure Double z20 = 1 *~ (coulomb / kilo gram) z21 :: AbsorbedDoseRate Double z21 = 1 *~ (gray / second) -- Other quantitites. mu :: GravitationalParameter Double mu = 398600.4418 *~ (kilo meter ^ pos3 / second ^ pos2) -- Dummy main function. main :: IO () main = Prelude.putStrLn "If I compiled I'm OK!"