packages feed

duckling-0.2.0.0: Duckling/Distance/EN/Corpus.hs

-- 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.Distance.EN.Corpus
  ( corpus
  ) where

import Data.String
import Prelude

import Duckling.Distance.Types
import Duckling.Testing.Types

corpus :: Corpus
corpus = (testContext, testOptions, allExamples)

allExamples :: [Example]
allExamples = concat
  [ examples (simple Kilometre 3)
             [ "3 kilometers"
             , "3 km"
             , "3km"
             , "3k"
             , "3.0 km"
             ]
  , examples (simple Mile 8)
             [ "8 miles"
             , "eight mile"
             , "8 mi"
             ]
  , examples (simple M 9)
             [ "9m"
             ]
  , examples (simple Centimetre 2)
             [ "2cm"
             , "2 centimeters"
             ]
  , examples (simple Inch 5)
             [ "5 in"
             , "5''"
             , "five inches"
             , "5\""
             ]
  , examples (simple Metre 1.87)
             [ "1.87 meters"
             ]
  -- Composite values:
  , examples (simple Inch 94)
             [ "7 feet and 10 inches"
             , "7 feet, 10 inches"
             , "7 feet 10 inches"
             ]
  , examples (simple Metre 2001)
             [ "2 km and 1 meter"
             , "2 kilometer, 1 metre"
             , "2 kilometer 1 metre"
             ]
  , examples (simple Inch 166)
             [ "2 yards 7 ft 10 inches"
             , "2 yds, 7 feet and 10 inches"
             , "2 yards, 7 feet, 10 in"
             ]
  , examples (simple Foot 13)
             [ "2 yards and 7 feet"
             , "2 yards, 7 feet"
             , "2 yd 7'"
             ]
  , examples (simple Centimetre 1000806)
             [ "10 kms 8 metres 6 cm"
             , "10 kms, 8 meters, 6 cm"
             , "10 kms, 8 meters and 6 centimeters"
--             , "10 kms, 8 meters, and 6 cm" -- Oxford comma not supported
             ]
  , examples (simple Metre 1.3048)
             [ "1 meter and 1 foot"
             ]
  , examples (simple Kilometre 2.609344)
             [ "1 kilometer and 1 mile"
             ]
  , examples (simple M 3)
             -- The original, ambiguous "m" unit is preserved
             [ "3m"
             ]
  , examples (simple Centimetre 305)
             -- The ambiguous "m" unit is inferred as "meteres"
             [ "3m and 5cm"
             ]
  , examples (simple Foot 5281)
             -- The ambiguous "m" unit is inferred as "miles"
             [ "1m and 1ft"
             ]
  -- Ranges:
  , examples (between Kilometre (3, 5))
             [ "between 3 and 5 kilometers"
             , "from 3km to 5km"
             , "around 3-5 kilometers"
             , "about 3km-5km"
             , "3-5 kilometers"
             ]
  , examples (under Mile 3.5)
             [ "under 3.5 miles"
             , "less than 3.5mi"
             , "lower than three point five miles"
             ]
  , examples (above Inch 5)
             [ "more than five inches"
             , "at least 5''"
             , "over 5\""
             , "above 5 in"
             ]
  , examples (between Millimetre (5, 6))
             [ "between 5 and six millimeters"
             , "between 5 and six millimetres"
             , "5-6 mm"
             ]
  ]