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.Time.ES.Corpus
    ( corpus
    , latentCorpus
    ) where
  
  import Data.String
  import Prelude
  
  import Duckling.Locale
  import Duckling.Resolve
  import Duckling.Time.Corpus
  import Duckling.TimeGrain.Types hiding (add)
  import Duckling.Testing.Types hiding (examples)
  
  context :: Context
  context = testContext {locale = makeLocale ES Nothing}
  
  latentCorpus :: Corpus
  latentCorpus = (context, testOptions {withLatent = True}, xs)
    where
      xs = concat
        [ examples (datetime (2013, 2, 12, 13, 0, 0) Hour)
                   [ "una hora"
                   ]
        ]
  
  corpus :: Corpus
  corpus = (context, testOptions, allExamples)
  
  allExamples :: [Example]
  allExamples = concat
    [ examples (datetime (2013, 2, 12, 4, 30, 0) Second)
               [ "ahora"
               , "ya"
               , "ahorita"
               , "cuanto antes"
               ]
    , examples (datetime (2013, 2, 12, 0, 0, 0) Day)
               [ "hoy"
               , "en este momento"
               ]
    , examples (datetime (2013, 2, 11, 0, 0, 0) Day)
               [ "ayer"
               ]
    , examples (datetime (2013, 2, 10, 0, 0, 0) Day)
               [ "anteayer"
               , "antier"
               ]
    {--
      This is intentional
      The purpose is to steer the classifier towards "tomorrow" rule
      instead of "morning" rule.
    --}
    , examples (datetime (2013, 2, 13, 0, 0, 0) Day)
               [ "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               , "manana"
               , "mañana"
               , "manana"
               , "mañana"
               , "manana"
               ]
    , examples (datetime (2013, 2, 14, 0, 0, 0) Day)
               [ "pasado mañana"
               ]
    , examples (datetime (2013, 2, 18, 0, 0, 0) Day)
               [ "lunes"
               , "lu"
               , "lun."
               , "este lunes"
               ]
    , examples (datetime (2013, 2, 22, 0, 0, 0) Day)
               [ "el próximo viernes"
               , "proximo viernes"
               ]
    , examples (datetime (2013, 2, 18, 0, 0, 0) Day)
               [ "lunes, 18 de febrero"
               ]
    , examples (datetime (2013, 2, 19, 0, 0, 0) Day)
               [ "martes"
               , "ma"
               , "ma."
               ]
    , examples (datetime (2013, 2, 13, 0, 0, 0) Day)
               [ "miercoles"
               , "miércoles"
               , "mx"
               , "mié."
               ]
    , examples (datetime (2013, 2, 14, 0, 0, 0) Day)
               [ "jueves"
               ]
    , examples (datetime (2013, 2, 15, 0, 0, 0) Day)
               [ "viernes"
               ]
    , examples (datetime (2013, 2, 16, 0, 0, 0) Day)
               [ "sabado"
               ]
    , examples (datetime (2013, 2, 17, 0, 0, 0) Day)
               [ "domingo"
               ]
    , examples (datetime (2013, 5, 5, 0, 0, 0) Day)
               [ "el 5 de mayo"
               , "el cinco de mayo"
               ]
    , examples (datetime (2013, 5, 5, 0, 0, 0) Day)
               [ "el cinco de mayo de 2013"
               , "mayo 5 del 2013"
               , "5-5-2013"
               ]
    , examples (datetime (2013, 7, 4, 0, 0, 0) Day)
               [ "el 4 de julio"
               , "el 4/7"
               ]
    , examples (datetime (2013, 3, 3, 0, 0, 0) Day)
               [ "el 3 de marzo"
               , "3 de marzo"
               , "3 marzo"
               , "marzo 3"
               , "el 3-3"
               ]
    , examples (datetime (2013, 4, 5, 0, 0, 0) Day)
               [ "el 5 de abril"
               , "5 de abril"
               , "5 abril"
               , "abril 5"
               ]
    , examples (datetime (2013, 3, 1, 0, 0, 0) Day)
               [ "el 1 de marzo"
               , "1 de marzo"
               , "el primero de marzo"
               , "el uno de marzo"
               , "primero de marzo"
               , "uno de marzo"
               ]
    , examples (datetime (2013, 3, 1, 0, 0, 0) Day)
               [ "1-3-2013"
               , "1.3.2013"
               , "1/3/2013"
               ]
    , examples (datetime (2013, 2, 16, 0, 0, 0) Day)
               [ "el 16"
               , "16 de febrero"
               ]
    , examples (datetime (2013, 2, 17, 0, 0, 0) Day)
               [ "el 17"
               , "17 de febrero"
               , "17-2"
               , "el 17/2"
               ]
    , examples (datetime (2013, 2, 20, 0, 0, 0) Day)
               [ "el 20"
               , "20 de febrero"
               , "20/2"
               ]
    , examples (datetime (1974, 10, 31, 0, 0, 0) Day)
               [ "31/10/1974"
               , "31/10/74"
               ]
    , examples (datetime (2013, 2, 19, 0, 0, 0) Day)
               [ "el martes que viene"
               ]
    , examples (datetime (2013, 2, 20, 0, 0, 0) Day)
               [ "miércoles que viene"
               , "el miércoles de la semana que viene"
               , "miercoles de la próxima semana"
               ]
    , examples (datetime (2013, 2, 11, 0, 0, 0) Day)
               [ "el lunes de esta semana"
               ]
    , examples (datetime (2013, 2, 12, 0, 0, 0) Day)
               [ "martes de esta semana"
               ]
    , examples (datetime (2013, 2, 13, 0, 0, 0) Day)
               [ "el miércoles de esta semana"
               ]
    , examples (datetime (2013, 2, 11, 0, 0, 0) Week)
               [ "esta semana"
               ]
    , examples (datetime (2013, 2, 4, 0, 0, 0) Week)
               [ "la semana pasada"
               ]
    , examples (datetime (2013, 2, 18, 0, 0, 0) Week)
               [ "la semana que viene"
               , "la proxima semana"
               , "semana que viene"
               , "proxima semana"
               , "proximas semana"
               , "próxima semana"
               , "siguiente semana"
               ]
    , examples (datetime (2013, 1, 1, 0, 0, 0) Month)
               [ "el pasado mes"
               ]
    , examples (datetime (2013, 3, 0, 0, 0, 0) Month)
               [ "el mes que viene"
               , "el proximo mes"
               ]
    , examples (datetime (2012, 0, 0, 0, 0, 0) Year)
               [ "el año pasado"
               ]
    , examples (datetime (2013, 0, 0, 0, 0, 0) Year)
               [ "este ano"
               ]
    , examples (datetime (2014, 0, 0, 0, 0, 0) Year)
               [ "el año que viene"
               , "el proximo ano"
               ]
    , examples (datetime (2013, 2, 10, 0, 0, 0) Day)
               [ "el domingo pasado"
               , "el domingo de la semana pasada"
               ]
    , examples (datetime (2013, 2, 5, 0, 0, 0) Day)
               [ "el martes pasado"
               ]
    , examples (datetime (2013, 2, 12, 15, 0, 0) Hour)
               [ "a las tres de la tarde"
               , "a las tres"
               , "a las 3 pm"
               , "a las 15 horas"
               ]
    , examples (datetime (2013, 2, 12, 20, 0, 0) Hour)
               [ "a las ocho de la tarde"
               ]
    , examples (datetime (2013, 2, 12, 15, 0, 0) Minute)
               [ "15:00"
               , "15.00"
               ]
    , examples (datetime (2013, 2, 13, 0, 0, 0) Hour)
               [ "medianoche"
               ]
    , examples (datetime (2013, 2, 12, 12, 0, 0) Hour)
               [ "mediodía"
               , "las doce"
               , "medio dia"
               , "medio día"
               ]
    , examples (datetime (2013, 2, 12, 12, 15, 0) Minute)
               [ "las doce y cuarto"
               ]
    , examples (datetime (2013, 2, 12, 11, 55, 0) Minute)
               [ "las doce menos cinco"
               ]
    , examples (datetime (2013, 2, 12, 12, 30, 0) Minute)
               [ "las doce y media"
               ]
    , examples (datetime (2013, 2, 13, 3, 0, 0) Hour)
               [ "las tres de la manana"
               , "las tres en la manana"
               ]
    , examples (datetime (2013, 2, 12, 15, 15, 0) Minute)
               [ "a las tres y quince"
               , "a las 3 y cuarto"
               , "a las tres y cuarto de la tarde"
               , "a las tres y cuarto en la tarde"
               , "15:15"
               , "15.15"
               ]
    , examples (datetime (2013, 2, 12, 15, 30, 0) Minute)
               [ "a las tres y media"
               , "a las 3 y treinta"
               , "a las tres y media de la tarde"
               , "a las 3 y treinta del mediodía"
               , "15:30"
               , "15.30"
               ]
    , examples (datetime (2013, 2, 12, 11, 45, 0) Minute)
               [ "las doce menos cuarto"
               , "11:45"
               , "las once y cuarenta y cinco"
               , "hoy a las doce menos cuarto"
               , "hoy a las once y cuarenta y cinco"
               ]
    , examples (datetime (2013, 2, 12, 5, 15, 0) Minute)
               [ "5 y cuarto"
               ]
    , examples (datetime (2013, 2, 12, 6, 0, 0) Hour)
               [ "6 de la mañana"
               ]
    , examples (datetime (2013, 2, 13, 11, 0, 0) Hour)
               [ "miércoles a las once de la mañana"
               ]
    , examples (datetime (2013, 2, 13, 11, 0, 0) Hour)
               [ "mañana a las once"
               , "mañana a 11"
               ]
    , examples (datetime (2014, 9, 12, 0, 0, 0) Day)
               [ "viernes, el 12 de septiembre de 2014"
               ]
    , examples (datetime (2013, 2, 12, 4, 30, 1) Second)
               [ "en un segundo"
               ]
    , examples (datetime (2013, 2, 12, 4, 31, 0) Second)
               [ "en un minuto"
               , "en 1 min"
               ]
    , examples (datetime (2013, 2, 12, 4, 32, 0) Second)
               [ "en 2 minutos"
               , "en dos minutos"
               ]
    , examples (datetime (2013, 2, 12, 5, 30, 0) Second)
               [ "en 60 minutos"
               ]
    , examples (datetime (2013, 2, 12, 5, 30, 0) Minute)
               [ "en una hora"
               ]
    , examples (datetime (2013, 2, 12, 2, 30, 0) Minute)
               [ "hace dos horas"
               ]
    , examples (datetime (2013, 2, 13, 4, 30, 0) Minute)
               [ "en 24 horas"
               , "en veinticuatro horas"
               ]
    , examples (datetime (2013, 2, 13, 4, 0, 0) Hour)
               [ "en un dia"
               ]
    , examples (datetime (2013, 2, 19, 4, 0, 0) Hour)
               [ "en 7 dias"
               ]
    , examples (datetime (2013, 2, 19, 0, 0, 0) Day)
               [ "en una semana"
               ]
    , examples (datetime (2013, 1, 22, 0, 0, 0) Day)
               [ "hace tres semanas"
               ]
    , examples (datetime (2013, 4, 12, 0, 0, 0) Day)
               [ "en dos meses"
               ]
    , examples (datetime (2012, 11, 12, 0, 0, 0) Day)
               [ "hace tres meses"
               ]
    , examples (datetime (2014, 2, 0, 0, 0, 0) Month)
               [ "en un ano"
               , "en 1 año"
               ]
    , examples (datetime (2011, 2, 0, 0, 0, 0) Month)
               [ "hace dos años"
               ]
    , examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
               [ "este verano"
               ]
    , examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day)
               [ "este invierno"
               ]
    , examples (datetime (2013, 12, 25, 0, 0, 0) Day)
               [ "Navidad"
               , "la Navidad"
               ]
    , examples (datetime (2013, 12, 31, 0, 0, 0) Day)
               [ "Nochevieja"
               ]
    , examples (datetime (2014, 1, 1, 0, 0, 0) Day)
               [ "ano nuevo"
               , "año nuevo"
               ]
    , examples (datetime (2013, 2, 12, 21, 0, 0) Hour)
               [ "nueve de la noche"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)
               [ "esta noche"
               ]
    , examples (datetimeInterval ((2013, 2, 13, 18, 0, 0), (2013, 2, 14, 0, 0, 0)) Hour)
               [ "mañana por la noche"
               ]
    , examples (datetimeInterval ((2013, 2, 11, 18, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour)
               [ "ayer por la noche"
               ]
    , examples (datetimeInterval ((2013, 2, 15, 18, 0, 0), (2013, 2, 18, 0, 0, 0)) Hour)
               [ "este weekend"
               , "este fin de semana"
               ]
    , examples (datetimeInterval ((2013, 2, 18, 4, 0, 0), (2013, 2, 18, 12, 0, 0)) Hour)
               [ "lunes por la mañana"
               ]
    , examples (datetimeInterval ((2013, 2, 15, 4, 0, 0), (2013, 2, 15, 12, 0, 0)) Hour)
               [ "el 15 de febrero por la mañana"
               ]
    , examples (datetime (2013, 2, 12, 20, 0, 0) Hour)
               [ "a las 8 de la tarde"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 4, 29, 58), (2013, 2, 12, 4, 30, 0)) Second)
               [ "pasados 2 segundos"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 4, 30, 1), (2013, 2, 12, 4, 30, 4)) Second)
               [ "proximos 3 segundos"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 4, 28, 0), (2013, 2, 12, 4, 30, 0)) Minute)
               [ "pasados 2 minutos"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 4, 31, 0), (2013, 2, 12, 4, 34, 0)) Minute)
               [ "proximos 3 minutos"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 5, 0, 0), (2013, 2, 12, 8, 0, 0)) Hour)
               [ "proximas 3 horas"
               ]
    , examples (datetimeInterval ((2013, 2, 10, 0, 0, 0), (2013, 2, 12, 0, 0, 0)) Day)
               [ "pasados 2 dias"
               ]
    , examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 16, 0, 0, 0)) Day)
               [ "proximos 3 dias"
               ]
    , examples (datetimeInterval ((2013, 1, 28, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Week)
               [ "pasadas dos semanas"
               ]
    , examples (datetimeInterval ((2013, 2, 18, 0, 0, 0), (2013, 3, 11, 0, 0, 0)) Week)
               [ "3 proximas semanas"
               , "3 semanas que vienen"
               ]
    , examples (datetimeInterval ((2012, 12, 0, 0, 0, 0), (2013, 2, 0, 0, 0, 0)) Month)
               [ "pasados 2 meses"
               , "dos pasados meses"
               ]
    , examples (datetimeInterval ((2013, 3, 0, 0, 0, 0), (2013, 6, 0, 0, 0, 0)) Month)
               [ "3 próximos meses"
               , "proximos tres meses"
               , "tres meses que vienen"
               ]
    , examples (datetimeInterval ((2011, 0, 0, 0, 0, 0), (2013, 0, 0, 0, 0, 0)) Year)
               [ "pasados 2 anos"
               , "dos pasados años"
               ]
    , examples (datetimeInterval ((2014, 0, 0, 0, 0, 0), (2017, 0, 0, 0, 0, 0)) Year)
               [ "3 próximos años"
               , "proximo tres años"
               , "3 años que vienen"
               ]
    , examples (datetimeInterval ((2013, 7, 13, 0, 0, 0), (2013, 7, 16, 0, 0, 0)) Day)
               [ "13 a 15 de julio"
               , "13 - 15 de julio de 2013"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 9, 30, 0), (2013, 2, 12, 11, 0, 0)) Minute)
               [ "9:30 - 11:00"
               ]
    , examples (datetimeInterval ((2013, 12, 21, 0, 0, 0), (2014, 1, 7, 0, 0, 0)) Day)
               [ "21 de Dic. a 6 de Ene"
               ]
    , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 12, 7, 30, 0)) Second)
               [ "dentro de tres horas"
               ]
    , examples (datetime (2013, 2, 12, 16, 0, 0) Hour)
               [ "a las cuatro de la tarde"
               ]
    , examples (datetime (2013, 2, 12, 13, 0, 0) Minute)
               [ "a las cuatro CET"
               ]
    , examples (datetime (2013, 8, 15, 0, 0, 0) Day)
               [ "jue 15"
               ]
    , examples (datetimeHoliday (2013, 12, 18, 0, 0, 0) Day "Día Mundial de la Lengua Árabe")
               [ "dia mundial de la lengua arabe"
               , "día mundial de la lengua árabe"
               ]
    , examples (datetimeHoliday (2013, 3, 1, 0, 0, 0) Day "Día de la Cero Discriminación")
               [ "dia de la cero discriminacion"
               , "día de la cero discriminación"
               ]
    , examples (datetimeHoliday (2019, 7, 6, 0, 0, 0) Day "Día Internacional de las Cooperativas")
               [ "día internacional de las cooperativas del 2019"
               ]
    , examples (datetimeHoliday (2013, 11, 17, 0, 0, 0) Day "Día de la Prematuridad Mundial")
               [ "día de la prematuridad mundial"
               , "día mundial del prematuro"
               , "día mundial del niño prematuro"
               ]
    , examples (datetimeHoliday (2013, 4, 1, 0, 0, 0) Day "Día de los Inocentes de Abril")
               [ "día de los inocentes"
               , "día de los inocentes de abril"
               , "día de las bromas de abril"
               , "día de las bromas"
               ]
    , examples (datetime (2013, 3, 9, 0, 0, 0) Day)
               [ "día nueve"
               ]
    , examples (datetime (2013, 2, 15, 0, 0, 0) Day)
               [ "día quince"
               ]
    , examples (datetime (2013, 3, 11, 0, 0, 0) Day)
               [ "día once"
               ]
    , examples (datetime (2013, 2, 12, 18, 2, 0) Minute)
               [
                 "las seis cero dos pm"
               , "las seis zero dos pm"
               , "para las seis cero dos pm"
               , "para las seis zero dos pm"
               , "a las seis cero dos pm"
               , "a las seis zero dos pm"
               , "al las seis cero dos pm"
               , "al las seis zero dos pm"
               , "para las 6 0 2 pm"
               , "a las 6 0 2 pm"
               , "al las 6 0 2 pm"
               , "seis cero dos pm"
               ]
    , examples (datetime (2013, 2, 12, 18, 2, 0) Minute)
               [ "seis dos de la tarde"
               ]
    , examples (datetime (1990, 0, 0, 0, 0, 0) Year)
               [
                 "mil novecientos noventa"
               ]
    , examples (datetime (1990, 5, 4, 0, 0, 0) Day)
               [
                 "cuatro de mayo de mil novecientos noventa"
               ]
    ]
  