content: -- Copyright (c) 2016-present, Facebook, Inc.
  -- All rights reserved.
  --
  -- This source code is licensed under the BSD-style license found in the
  -- LICENSE file in the root directory of this source tree.
  
  
  {-# LANGUAGE OverloadedStrings #-}
  
  module Duckling.Quantity.EN.Corpus
    ( corpus
    , latentCorpus
    ) where
  
  import Prelude
  import Data.String
  
  import Duckling.Quantity.Types
  import Duckling.Resolve (Options(..))
  import Duckling.Testing.Types
  
  corpus :: Corpus
  corpus = (testContext, testOptions, allExamples)
  
  
  latentCorpus :: Corpus
  latentCorpus = (testContext, testOptions {withLatent = True}, latentExamples)
    where
      latentExamples = concat
        [
        examples (simple Unnamed 4 Nothing)
                  [ "around 4"
                  , "four"
                  , "~ four"
                  ]
        ,
        examples (simple Unnamed 38.5 Nothing)
                  [ "about 38.5"
                  ]
        ]
  
  allExamples :: [Example]
  allExamples = concat
    [ examples (simple Pound 2 (Just "meat"))
               [ "two pounds of meat"
               ]
    , examples (simple Gram 2 Nothing)
               [ "2 grams"
               , "0.002 kg"
               , "2 g."
               , "2 gs"
               , "2/1000 kilograms"
               , "2000 milligrams"
               , "2,000 milligrams"
               ]
    , examples (simple Gram 1000 Nothing)
               [ "a kilogram"
               , "a kg"
               , "1 k.g."
               , "1 k.gs"
               , "1000 gs"
               ]
    , examples (simple Pound 1 Nothing)
               [ "a Pound"
               , "1 lb"
               , "a lb"
               ]
    , examples (simple Ounce 2 Nothing)
               [ "2 ounces"
               , "2oz"
               ]
    , examples (simple Cup 3 (Just "sugar"))
               [ "3 Cups of sugar"
               , "3 Cups of SugAr"
               ]
    , examples (simple Cup 0.75 Nothing)
               [ "3/4 cup"
               , "0.75 cup"
               , ".75 cups"
               ]
    , examples (simple Gram 500 (Just "strawberries"))
               [ "500 grams of strawberries"
               , "500g of strawberries"
               , "0.5 kilograms of strawberries"
               , "0.5 kg of strawberries"
               , "500000mg of strawberries"
               ]
    , examples (between Gram (100,1000) (Just "strawberries"))
                [ "100-1000 gram of strawberries"
                , "between 100 and 1000 grams of strawberries"
                , "from 100 to 1000 g of strawberries"
                , "100 - 1000 g of strawberries"
                ]
    , examples (between Gram (2,7) Nothing)
                [ "around 2 -7 g"
                , "~2-7 grams"
                , "from 2 to 7 g"
                , "between 2.0 g and about 7.0 g"
                , "between 0.002 kg and about 0.007 kg"
                , "2 - ~7 grams"
                ]
    , examples (under Pound 6 (Just "meat"))
                [ "less than six pounds of meat"
                , "no more than 6 lbs of meat"
                , "below 6.0 pounds of meat"
                , "at most six pounds of meat"
                ]
    , examples (above Cup 2 Nothing)
                [ "exceeding 2 Cups"
                , "at least two Cups"
                , "over 2 Cups"
                , "more than 2 Cups"
                ]
    , examples (above Ounce 4 (Just "chocolate"))
                [ "exceeding 4 oz of chocolate"
                , "at least 4.0 oz of chocolate"
                , "over four ounces of chocolate"
                , "more than four ounces of chocolate"
                ]
    ]
  