isotope-0.1.0.0: test/Isotope/ParsersSpec.hs
{-# LANGUAGE QuasiQuotes #-}
module Isotope.ParsersSpec (spec) where
import Isotope
import Test.Hspec
import Test.QuickCheck
import Data.Map (fromList)
spec :: Spec
spec = do
describe "mol" $
it "QuasiQuoter for molecular formulae should produce the correct value" $
[mol|C6H6|] `shouldBe` MolecularFormula {getMolecularFormula = fromList [(H,6),(C,6)]}
describe "emp" $
it "QuasiQuoter for empirical formulae should produce the correct value" $
[emp|CH|] `shouldBe` EmpiricalFormula {getEmpiricalFormula = fromList [(H,1),(C,1)]}
describe "con" $
it "QuasiQuoter for condensed formulae should produce the correct value" $
[con|CH3(CH3)2CH3|] `shouldBe` CondensedFormula {getCondensedFormula = [Left (MolecularFormula {getMolecularFormula = fromList [(C,1)]}),Left (MolecularFormula {getMolecularFormula = fromList [(H,3)]}),Right ([MolecularFormula {getMolecularFormula = fromList [(C,1)]},MolecularFormula {getMolecularFormula = fromList [(H,3)]}],2),Left (MolecularFormula {getMolecularFormula = fromList [(C,1)]}),Left (MolecularFormula {getMolecularFormula = fromList [(H,3)]})]}