package org.gbif.checklistbank.authorship; import org.gbif.checklistbank.model.Equality; import org.junit.Test; import static org.junit.Assert.*; public class YearComparatorTest { @Test public void compare() throws Exception { assertEquals(Equality.UNKNOWN, new YearComparator("123", null).compare()); assertEquals(Equality.UNKNOWN, new YearComparator("123", "").compare()); assertEquals(Equality.UNKNOWN, new YearComparator("123", " ").compare()); assertEquals(Equality.UNKNOWN, new YearComparator(null, null).compare()); assertEquals(Equality.DIFFERENT, new YearComparator("neunzehn", "1887").compare()); assertEquals(Equality.DIFFERENT, new YearComparator("neunzehn", "3 plus").compare()); assertEquals(Equality.DIFFERENT, new YearComparator("123", "125").compare()); assertEquals(Equality.DIFFERENT, new YearComparator("2001", "1999").compare()); assertEquals(Equality.EQUAL, new YearComparator(" 1678", "1678 ").compare()); // 1 year diff is ok assertEquals(Equality.EQUAL, new YearComparator("2001", "2001").compare()); assertEquals(Equality.EQUAL, new YearComparator("2001", "2000").compare()); assertEquals(Equality.EQUAL, new YearComparator("2000", "1999").compare()); assertEquals(Equality.EQUAL, new YearComparator("189", "190").compare()); // placeholders accepted assertEquals(Equality.EQUAL, new YearComparator("1878", "187?").compare()); assertEquals(Equality.EQUAL, new YearComparator("1878", "1879?").compare()); assertEquals(Equality.EQUAL, new YearComparator("18?8", "1878").compare()); assertEquals(Equality.EQUAL, new YearComparator("187?", "187 ?").compare()); // but not more than one assertEquals(Equality.DIFFERENT, new YearComparator("18??", "1877").compare()); assertEquals(Equality.DIFFERENT, new YearComparator("18??", "18?").compare()); } }