package edu.stanford.nlp.ie.pascal; import junit.framework.TestCase; public class ISODateInstanceTest extends TestCase { private String[] dateStrings = { "February 5, 1923", "Mar 3", "18 July 2005", "18 Sep 05", "Jan. 13 , '90", "Jan. 13", "01/03/07", "03-27-85", "1900-1946", "1900--1946", "June 8-10", "today, Saturday", "Saturday, June 10", "Dec. 27", "1438143814381434", }; private String[] dateAnswers = { "19230205", "****0303", "20050718", "20050918", "19900113", "****0113", "20070103", "19850327", "1900/1946", "1900/1946", "****0608/****0610", "saturday", "****0610", "****1227", "1438", }; private String[] staticCompatibleStrings1 = { "20071203", "****1203", "200712", "****1112" }; private String[] staticCompatibleStrings2 = { "20071203", "20071203", "200412", "******12" }; private boolean[] staticCompatibleAnswers= { true, true, false, true }; private String[] staticAfterStrings2 = { "20071203", "20071203", "200712", "200712", "200701", "****05", "200703", "200703", "****11", "******03" }; private String[] staticAfterStrings1 = { "20071207", "2008", "2008", "2007", "200703", "****06", "2006", "200701", "******03", "****11" }; private boolean[] staticAfterAnswers= { true, true, true, false, true, true, false, false, true, true }; public void testDateNormalization() { assertEquals(dateStrings.length, dateAnswers.length); for (int i = 0; i < dateStrings.length; i++) { ISODateInstance d = new ISODateInstance(dateStrings[i]); assertEquals("Testing " + dateStrings[i], dateAnswers[i], d.toString()); } } public void testIsAfter() { for (int i = 0; i < staticAfterStrings1.length; i++) { assertEquals("Testing " + staticAfterStrings1[i] + " and " + staticAfterStrings2[i], staticAfterAnswers[i], ISODateInstance.isAfter(staticAfterStrings1[i], staticAfterStrings2[i])); } } public void testIsCompatible() { for (int i = 0; i < staticCompatibleStrings1.length; i++) { assertEquals("Testing " + staticCompatibleStrings1[i] + " and " + staticCompatibleStrings2[i], staticCompatibleAnswers[i], ISODateInstance.isCompatible(staticCompatibleStrings1[i], staticCompatibleStrings2[i])); } } private String[] originalDates = { "18 July 2005", "18 July 2005", "18 July 2005", "1 February 2008", "1 February 2008", "1 February", "1 February", "1 January 2008", "31 December 2007", "1 January", "31 December" }; private String[] relativeArguments = { "today", "tomorrow", "yesterday", "tomorrow", "yesterday", "tomorrow", "yesterday", "yesterday", "tomorrow", "yesterday", "tomorrow" }; private String[] relativeDateAnswers = { "20050718", "20050719", "20050717", "20080202", "20080131", "****0202", "****0131", "20071231", "20080101", "****1231", "****0101" }; public void testRelativeDateCreation() { for (int i = 0; i < originalDates.length; i++) { assertEquals("Testing " + relativeArguments[i] + " with respect to " + originalDates[i], relativeDateAnswers[i], (new ISODateInstance(new ISODateInstance(originalDates[i]), relativeArguments[i])).getDateString()); } } public void testContains() { //TODO: implement! } }