public Predicate <T> BuildFilter <T>(FactDate when, Func <FactDate, T, FactLocation> location) { Predicate <T> locationFilter = FilterUtils.TrueFilter <T>(); string country(FactLocation x) => x.Country; if (Scotland) { locationFilter = FilterUtils.LocationFilter <T>(when, location, country, Countries.SCOTLAND); } else if (England) { locationFilter = FilterUtils.LocationFilter <T>(when, location, country, Countries.ENGLAND); } else if (Wales) { locationFilter = FilterUtils.LocationFilter <T>(when, location, country, Countries.WALES); } else if (UK) { locationFilter = FilterUtils.OrFilter <T>(FilterUtils.LocationFilter <T>(when, location, country, Countries.SCOTLAND), FilterUtils.LocationFilter <T>(when, location, country, Countries.ENGLAND), FilterUtils.LocationFilter <T>(when, location, country, Countries.WALES)); } else if (Canada) { locationFilter = FilterUtils.LocationFilter <T>(when, location, country, Countries.CANADA); } else if (USA) { locationFilter = FilterUtils.LocationFilter <T>(when, location, country, Countries.UNITED_STATES); } return(locationFilter); }
public void FactDateBasicTest() { FactDate target = BasicDates(); target = AlternateDateFormats(); target = new FactDate("C1914"); Assert.AreEqual(new DateTime(1913, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1914, 12, 31), target.EndDate); target = new FactDate("ABT 966"); Assert.AreEqual(new DateTime(965, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); target = new FactDate("966"); Assert.AreEqual(new DateTime(966, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); // interpreted dates target = new FactDate("INT 4 OCT 1723 4DA 8MNTH 1723"); Assert.AreEqual(new DateTime(1723, 10, 4), target.StartDate); Assert.AreEqual(new DateTime(1723, 10, 4), target.EndDate); target = new FactDate("BET 5/6/2018 AND 7/6/2018"); Assert.AreEqual(new DateTime(2018, 6, 5), target.StartDate); Assert.AreEqual(new DateTime(2018, 6, 7), target.EndDate); }
public void SpecialDates() { FactDate target = new FactDate("ABT @#DJULIAN@ 1567"); Assert.AreEqual(new DateTime(1566, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1567, 12, 31), target.EndDate); }
public void FactDateComparisonTest() { FactDate first = new FactDate("1 January 1721/2"); FactDate second = new FactDate("31 December 1721"); FactDate third = new FactDate("31 December 1722"); FactDate fourth = new FactDate("1722"); Assert.IsTrue(second.IsBefore(first)); Assert.IsTrue(second.StartsBefore(first)); Assert.IsTrue(first.IsAfter(second)); Assert.IsTrue(first.EndsAfter(second)); Assert.IsFalse(first.Overlaps(second)); Assert.IsTrue(first.IsBefore(third)); Assert.IsTrue(third.IsAfter(first)); Assert.IsFalse(first.IsBefore(fourth)); Assert.IsTrue(first.Overlaps(fourth)); Assert.IsFalse(fourth.IsBefore(first)); Assert.IsFalse(fourth.IsAfter(first)); FactDate census = new FactDate("BET 31 DEC 1910 AND 2 APR 1911"); Assert.IsTrue(census.Overlaps(CensusDate.UKCENSUS1911)); census = new FactDate("BET 1 JAN 1911 AND 2 APR 1911"); Assert.IsTrue(census.Overlaps(CensusDate.UKCENSUS1911)); census = new FactDate("FROM 31 DEC 1910 TO 2 APR 1911"); Assert.IsTrue(census.Overlaps(CensusDate.UKCENSUS1911)); census = new FactDate("FROM 1 JAN 1911 TO 2 APR 1911"); Assert.IsTrue(census.Overlaps(CensusDate.UKCENSUS1911)); }
private static FactDate DoubleDates() { // Double dates FactDate target = new FactDate("11 Mar 1747/48"); Assert.AreEqual(new DateTime(1748, 3, 11), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 11), target.EndDate); target = new FactDate("Mar 1747/48"); Assert.AreEqual(new DateTime(1748, 3, 1), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 31), target.EndDate); target = new FactDate("1747/48"); Assert.AreEqual(new DateTime(1748, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1748, 12, 31), target.EndDate); target = new FactDate("11 Mar 1747/1748"); Assert.AreEqual(new DateTime(1748, 3, 11), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 11), target.EndDate); target = new FactDate("15 FEB 1599/00"); Assert.AreEqual(new DateTime(1600, 2, 15), target.StartDate); Assert.AreEqual(new DateTime(1600, 2, 15), target.EndDate); target = new FactDate("1 MAR 922/23"); Assert.AreEqual(new DateTime(923, 3, 1), target.StartDate); Assert.AreEqual(new DateTime(923, 3, 1), target.EndDate); target = new FactDate("1 MAR 922/923"); Assert.AreEqual(new DateTime(923, 3, 1), target.StartDate); Assert.AreEqual(new DateTime(923, 3, 1), target.EndDate); return(target); }
public static List <MapLocation> YearMapLocations(FactDate when, int limit) { List <MapLocation> result = new List <MapLocation>(); foreach (Individual ind in FamilyTree.Instance.AllIndividuals) { if (ind.IsAlive(when) && ind.GetMaxAge(when) < FactDate.MAXYEARS) { Fact fact = ind.BestLocationFact(when, limit); FactLocation loc = fact.Location; if (loc.IsGeoCoded(false)) { result.Add(new MapLocation(ind, fact, when)); } else { int startlevel = loc.Level - 1; for (int level = startlevel; level > FactLocation.UNKNOWN; level--) { loc = loc.GetLocation(level); if (loc.IsGeoCoded(false)) { result.Add(new MapLocation(ind, fact, loc, when)); break; } } } } } return(result); }
public static Predicate <T> IncompleteDataFilter <T>(int level, Predicate <T> certificatePresent, Func <T, FactDate> filterDate, Func <FactDate, T, FactLocation> filterLocation) { return(t => { if (certificatePresent(t)) { return false; } FactDate fd = filterDate(t); if (fd is null || !fd.IsExact) { return true; } FactLocation l = filterLocation(fd, t); switch (level) { case FactLocation.COUNTRY: return (l.Country.Length == 0); case FactLocation.REGION: return (l.Region.Length == 0); case FactLocation.SUBREGION: return (l.SubRegion.Length == 0); case FactLocation.ADDRESS: return (l.Address.Length == 0); case FactLocation.PLACE: return (l.Place.Length == 0); default: return true; } }); }
private static FactDate MoreBetweens() { FactDate target = new FactDate("BTW 1914-1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("FROM 1915"); Assert.AreEqual(new DateTime(1915, 1, 1), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("TO 1915"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1915, 12, 31), target.EndDate); target = new FactDate("FROM 1914 TO 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("APR 1914-APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 30), target.EndDate); target = new FactDate("9-17 JUL 1824"); Assert.AreEqual(new DateTime(1824, 7, 9), target.StartDate); Assert.AreEqual(new DateTime(1824, 7, 17), target.EndDate); target = new FactDate("10 APR 1914 - 15 APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 15), target.EndDate); target = new FactDate("10 APR 1914-15 APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 15), target.EndDate); target = new FactDate("10 APR-15 JUL 1918"); Assert.AreEqual(new DateTime(1918, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 7, 15), target.EndDate); target = new FactDate("APR 1914 - APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 30), target.EndDate); target = new FactDate("1914 - 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("bet 1900 - 1910"); Assert.AreEqual(new DateTime(1900, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1910, 12, 31), target.EndDate); target = new FactDate("1914 to 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("1914 until 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); return(target); }
public void FactDateBasicTest() { FactDate target = BasicDates(); target = AlternateDateFormats(); target = new FactDate(null); Assert.AreEqual(target, UNKNOWN_DATE); target = new FactDate(""); Assert.AreEqual(target, UNKNOWN_DATE); target = new FactDate("C1914"); Assert.AreEqual(new DateTime(1913, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1914, 12, 31), target.EndDate); target = new FactDate("ABT 966"); Assert.AreEqual(new DateTime(965, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); target = new FactDate("966"); Assert.AreEqual(new DateTime(966, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); // interpreted dates target = new FactDate("INT 4 OCT 1723 4DA 8MNTH 1723"); Assert.AreEqual(new DateTime(1723, 10, 4), target.StartDate); Assert.AreEqual(new DateTime(1723, 10, 4), target.EndDate); }
private void ScottishCensusTest(string reference, FactDate year, string parish, string ED, string page) { CensusReference censusRef = new CensusReference("I1", reference, false); Assert.IsTrue(censusRef.CensusYear.Equals(year)); Assert.IsTrue(censusRef.Parish.Equals(parish)); Assert.IsTrue(censusRef.ED.Equals(ED)); Assert.IsTrue(censusRef.Page.Equals(page)); }
private void USCensusTest(string reference, FactDate year, string roll, string ED, string page) { CensusReference censusRef = new CensusReference("I1", reference, false); Assert.IsTrue(censusRef.CensusYear.Equals(year)); Assert.IsTrue(censusRef.Roll.Equals(roll)); Assert.IsTrue(censusRef.ED.Equals(ED)); Assert.IsTrue(censusRef.Page.Equals(page)); }
private void CanadianCensus(string reference, FactDate year, string Roll, string page, string family) { CensusReference censusRef = new CensusReference("I1", reference, false); Assert.IsTrue(censusRef.CensusYear.Equals(year)); Assert.IsTrue(censusRef.Roll.Equals(Roll)); Assert.IsTrue(censusRef.Page.Equals(page)); Assert.IsTrue(censusRef.Family.Equals(family)); }
public void InvalidGEDCOMFormats() { CustomSettings test = new CustomSettings(); test.ClearNonGEDCOMDateSettings(); FactDate target; // invalid GEDCOM format dates test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.DD_MM_YYYY, "dd/mm/yyyy", "/"); target = new FactDate("5/6/2018"); Assert.AreEqual(new DateTime(2018, 6, 5), target.StartDate); Assert.AreEqual(new DateTime(2018, 6, 5), target.EndDate); target = new FactDate("BET 5/6/2018 AND 7/6/2018"); Assert.AreEqual(new DateTime(2018, 6, 5), target.StartDate); Assert.AreEqual(new DateTime(2018, 6, 7), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.MM_DD_YYYY, "mm/dd/yyyy", "/"); target = new FactDate("5/6/2018"); Assert.AreEqual(new DateTime(2018, 5, 6), target.StartDate); Assert.AreEqual(new DateTime(2018, 5, 6), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.DD_MM_YYYY, "dd/mm/yyyy", "."); target = new FactDate("5.6.2018"); Assert.AreEqual(new DateTime(2018, 6, 5), target.StartDate); Assert.AreEqual(new DateTime(2018, 6, 5), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.MM_DD_YYYY, "mm/dd/yyyy", "."); target = new FactDate("5.6.2018"); Assert.AreEqual(new DateTime(2018, 5, 6), target.StartDate); Assert.AreEqual(new DateTime(2018, 5, 6), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.DD_MM_YYYY, "dd/mm/yyyy", "-"); target = new FactDate("5-6-2018"); Assert.AreEqual(new DateTime(2018, 6, 5), target.StartDate); Assert.AreEqual(new DateTime(2018, 6, 5), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.MM_DD_YYYY, "mm/dd/yyyy", "-"); target = new FactDate("5-6-2018"); Assert.AreEqual(new DateTime(2018, 5, 6), target.StartDate); Assert.AreEqual(new DateTime(2018, 5, 6), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.DD_MM_YYYY, "dd/mm/yyyy", " "); target = new FactDate("5 6 2018"); Assert.AreEqual(new DateTime(2018, 6, 5), target.StartDate); Assert.AreEqual(new DateTime(2018, 6, 5), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.MM_DD_YYYY, "mm/dd/yyyy", " "); target = new FactDate("5 6 2018"); Assert.AreEqual(new DateTime(2018, 5, 6), target.StartDate); Assert.AreEqual(new DateTime(2018, 5, 6), target.EndDate); test.SetNonGEDCOMDateSettings(NonGEDCOMFormatSelected.DD_MM_YYYY, "dd/mm/yyyy", "/"); target = new FactDate("AFT 4/6/2018"); Assert.AreEqual(new DateTime(2018, 6, 5), target.StartDate); Assert.AreEqual(MAXDATE, target.EndDate); }
public MapLocation(Individual ind, Fact fact, FactLocation loc, FactDate year) { this.Individual = ind; this.Fact = fact; this.Location = loc; this.year = year; this.Icon = FactLocationImage.ErrorIcon(loc.GeocodeStatus).Icon; this.Geometry = new NetTopologySuite.Geometries.Point(Location.LongitudeM, Location.LatitudeM); this.FoundLocation = loc.FoundLocation; }
static void CanadianCensus(string reference, FactDate year, string ED, string SD, string page, string family) { CensusReference censusRef = new CensusReference("I1", reference, false); Assert.IsTrue(censusRef.CensusYear.Equals(year)); Assert.IsTrue(censusRef.ED.Equals(ED)); Assert.IsTrue(censusRef.SD.Equals(SD)); Assert.IsTrue(censusRef.Page.Equals(page)); Assert.IsTrue(censusRef.Family.Equals(family)); }
private static FactDate AlternateDateFormats() { FactDate target = DoubleDates(); // test some alternative date formats target = new FactDate("Q3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("3Q 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("ABT Q3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("ABT QTR3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("ABT QTR 3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("SEP QTR 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("JAN FEB MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("JAN / FEB / MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("JAN/FEB/MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("BET JAN-MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("JAN-MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("Q1 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); return(target); }
public void FactDateLanguageTest() { // French Dates FactDate target = new FactDate("4 janvier 1880"); Assert.AreEqual(new DateTime(1880, 1, 4), target.StartDate); Assert.AreEqual(new DateTime(1880, 1, 4), target.EndDate); target = new FactDate("4 MAI 1880"); Assert.AreEqual(new DateTime(1880, 5, 4), target.StartDate); Assert.AreEqual(new DateTime(1880, 5, 4), target.EndDate); }
void DgReportSheet_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { FamilyTree ft = FamilyTree.Instance; if (e.ColumnIndex >= birthColumnIndex && e.ColumnIndex <= burialColumnIndex) { DataGridViewCell cell = dgBMDReportSheet.Rows[e.RowIndex].Cells[e.ColumnIndex]; BMDColours value = (BMDColours)cell.Value; if (value != BMDColours.EXACT_DATE) { IDisplayColourBMD person = (IDisplayColourBMD)dgBMDReportSheet.Rows[e.RowIndex].DataBoundItem; Individual ind = ft.GetIndividual(person.IndividualID); if (e.ColumnIndex == birthColumnIndex || e.ColumnIndex == birthColumnIndex + 1) { ft.SearchBMD(FamilyTree.SearchType.BIRTH, ind, ind.BirthDate, cbBMDSearchProvider.SelectedIndex, cbRegion.Text, null); } else if (e.ColumnIndex >= birthColumnIndex + 2 && e.ColumnIndex <= birthColumnIndex + 4) { FactDate marriageDate = FactDate.UNKNOWN_DATE; Individual spouse = null; if (e.ColumnIndex == birthColumnIndex + 2) { marriageDate = ind.FirstMarriageDate; spouse = ind.FirstSpouse; } if (e.ColumnIndex == birthColumnIndex + 3) { marriageDate = ind.SecondMarriageDate; spouse = ind.SecondSpouse; } if (e.ColumnIndex == birthColumnIndex + 4) { marriageDate = ind.ThirdMarriageDate; spouse = ind.ThirdSpouse; } ft.SearchBMD(FamilyTree.SearchType.MARRIAGE, ind, marriageDate, cbBMDSearchProvider.SelectedIndex, cbRegion.Text, spouse); } else if (e.ColumnIndex == burialColumnIndex || e.ColumnIndex == burialColumnIndex - 1) { ft.SearchBMD(FamilyTree.SearchType.DEATH, ind, ind.DeathDate, cbBMDSearchProvider.SelectedIndex, cbRegion.Text, null); } } } else if (e.ColumnIndex >= 0) { string indID = (string)dgBMDReportSheet.CurrentRow.Cells["IndividualID"].Value; Individual ind = ft.GetIndividual(indID); Facts factForm = new Facts(ind); factForm.Show(); } } }
private void CensusHO107Test(string reference, FactDate year, string piece, string book, string folio, string page) { CensusReference censusRef = new CensusReference("I1", reference, false); Assert.IsTrue(censusRef.CensusYear.Equals(year)); Assert.IsTrue(censusRef.Piece.Equals(piece)); Assert.IsTrue(censusRef.Folio.Equals(folio)); Assert.IsTrue(censusRef.Page.Equals(page)); if (!book.Equals(string.Empty)) { Assert.IsTrue(censusRef.Book.Equals(book)); } }
public void SpecialDates() { FactDate target = new FactDate("ABT @#DJULIAN@ 1567"); Assert.AreEqual(new DateTime(1566, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1567, 12, 31), target.EndDate); target = new FactDate("605 BC"); Assert.AreEqual(target, UNKNOWN_DATE); target = new FactDate("605 B.C."); Assert.AreEqual(target, UNKNOWN_DATE); }
public void AgeStringConstructor() { FactDate baseDate = new FactDate("19 Nov 1988"); Age age = new Age("22y", baseDate); Assert.AreEqual(age.GetBirthDate(baseDate), new FactDate("19 Nov 1966")); age = new Age("22y 2m", baseDate); Assert.AreEqual(age.GetBirthDate(baseDate), new FactDate("19 Sep 1966")); age = new Age("22y 2m 5d", baseDate); Assert.AreEqual(age.GetBirthDate(baseDate), new FactDate("14 Sep 1966")); }
public void FactDatePhraseTest() { FactDate target = new FactDate("INT 17 APR 1917 (Easter Sunday 1917)"); Assert.AreEqual(new DateTime(1917, 4, 17), target.StartDate); Assert.AreEqual(new DateTime(1917, 4, 17), target.EndDate); target = new FactDate("(1881 Census)"); Assert.AreEqual(new DateTime(1881, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1881, 12, 31), target.EndDate); //target = new FactDate("(Easter Sunday 1917)"); //Assert.AreEqual(UNKNOWN_DATE, target.StartDate); //Assert.AreEqual(UNKNOWN_DATE, target.EndDate); }
public void SetupAliveAtDate(FactDate aliveAtDate, Predicate <Individual> filter) { Text = $"Individuals alive {aliveAtDate}"; var result = new SortableBindingList <IDisplayIndividual>(); IEnumerable <Individual> list = ft.AllIndividuals.Filter(filter); foreach (Individual i in list) { result.Add(i); } dgIndividuals.DataSource = result; SortIndividuals(); splitContainer.Panel1Collapsed = false; splitContainer.Panel2Collapsed = true; UpdateStatusCount(); }
public void FactDateBasicTest() { FactDate target = BasicDates(); target = AlternateDateFormats(); target = new FactDate(null); Assert.AreEqual(target, UNKNOWN_DATE); target = new FactDate(""); Assert.AreEqual(target, UNKNOWN_DATE); target = new FactDate("C1914"); Assert.AreEqual(new DateTime(1913, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1914, 12, 31), target.EndDate); target = new FactDate("ABT 966"); Assert.AreEqual(new DateTime(965, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); target = new FactDate("ABT1872"); Assert.AreEqual(new DateTime(1871, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1872, 12, 31), target.EndDate); target = new FactDate("966"); Assert.AreEqual(new DateTime(966, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); target = new FactDate("BET 2 JAN AND 2 DEC 1743"); Assert.AreEqual(new DateTime(1743, 1, 2), target.StartDate); Assert.AreEqual(new DateTime(1743, 12, 2), target.EndDate); // interpreted dates target = new FactDate("INT 4 OCT 1723 4DA 8MNTH 1723"); Assert.AreEqual(new DateTime(1723, 10, 4), target.StartDate); Assert.AreEqual(new DateTime(1723, 10, 4), target.EndDate); // 29th Feb try { target = new FactDate("29 FEB 1735"); Assert.Fail(); // if we get here the date was seen as valid so that's wrong } catch (FactDateException) { } // we expect this so no test failure catch (Exception) { Assert.Fail(); } // if we get some other sort of failure test failed }
static FactDate DoubleDates() { // Double dates FactDate target = new FactDate("11 Mar 1747/48"); Assert.AreEqual(new DateTime(1748, 3, 11), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 11), target.EndDate); target = new FactDate("Mar 1747/48"); Assert.AreEqual(new DateTime(1748, 3, 1), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 31), target.EndDate); target = new FactDate("1747/48"); Assert.AreEqual(new DateTime(1748, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1748, 12, 31), target.EndDate); target = new FactDate("11 Mar 1747/1748"); Assert.AreEqual(new DateTime(1748, 3, 11), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 11), target.EndDate); target = new FactDate("15 FEB 1599/00"); Assert.AreEqual(new DateTime(1600, 2, 15), target.StartDate); Assert.AreEqual(new DateTime(1600, 2, 15), target.EndDate); target = new FactDate("1 MAR 922/23"); Assert.AreEqual(new DateTime(923, 3, 1), target.StartDate); Assert.AreEqual(new DateTime(923, 3, 1), target.EndDate); target = new FactDate("1 MAR 922/923"); Assert.AreEqual(new DateTime(923, 3, 1), target.StartDate); Assert.AreEqual(new DateTime(923, 3, 1), target.EndDate); target = new FactDate("29 Feb 1703/1704"); Assert.AreEqual(new DateTime(1704, 2, 29), target.StartDate); Assert.AreEqual(new DateTime(1704, 2, 29), target.EndDate); target = new FactDate("Bef 29 Feb 1611/12"); Assert.AreEqual(MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1612, 2, 28), target.EndDate); return(target); }
private static FactDate Betweens() { // Betweens FactDate target = new FactDate("BET 1983 AND 1986"); Assert.AreEqual(new DateTime(1983, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 12, 31), target.EndDate); target = new FactDate("BET SEP 1983 AND 1986"); Assert.AreEqual(new DateTime(1983, 9, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 12, 31), target.EndDate); target = new FactDate("BET 28 SEP 1983 AND 1986"); Assert.AreEqual(new DateTime(1983, 9, 28), target.StartDate); Assert.AreEqual(new DateTime(1986, 12, 31), target.EndDate); target = new FactDate("BET 1983 AND JUN 1986"); Assert.AreEqual(new DateTime(1983, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 30), target.EndDate); target = new FactDate("BET SEP 1983 AND JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 30), target.EndDate); target = new FactDate("BET 28 SEP 1983 AND JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 28), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 30), target.EndDate); target = new FactDate("BET 1983 AND 10 JUN 1986"); Assert.AreEqual(new DateTime(1983, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 10), target.EndDate); target = new FactDate("BET SEP 1983 AND 10 JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 10), target.EndDate); target = new FactDate("BET 28 SEP 1983 AND 10 JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 28), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 10), target.EndDate); return(target); }
void ScoreDates(FactDate dateA, FactDate dateB) { if (dateA.IsKnown && dateB.IsKnown) { double distance = dateA.Distance(dateB); if (dateA.Equals(dateB)) { Score += 50; } else if (distance <= .25) { Score += 50; } else if (distance <= .5) { Score += 20; } else if (distance <= 1) { Score += 10; } else if (distance <= 2) { Score += 5; } else if (distance > 5 && distance < 20) { Score -= (int)(distance * distance); } else { Score = -10000; // distance is too big so set score to large negative } if (dateA.IsExact && dateB.IsExact) { Score += 100; } } }
public void FactDateConstructorTest() { FactDate target = new FactDate("1966"); Assert.AreEqual(new DateTime(1966, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 12, 31), target.EndDate); target = new FactDate("19 Nov"); Assert.AreEqual(new DateTime(1, 11, 19), target.StartDate); Assert.AreEqual(new DateTime(9999, 11, 19), target.EndDate); target = new FactDate("Nov 1966"); Assert.AreEqual(new DateTime(1966, 11, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 30), target.EndDate); target = new FactDate("19 Nov 1966"); Assert.AreEqual(new DateTime(1966, 11, 19), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 19), target.EndDate); target = new FactDate("ABT 1966"); Assert.AreEqual(new DateTime(1965, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 12, 31), target.EndDate); target = new FactDate("About 1615"); Assert.AreEqual(new DateTime(1614, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1615, 12, 31), target.EndDate); target = new FactDate("ABT NOV 1966"); Assert.AreEqual(new DateTime(1966, 10, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 30), target.EndDate); target = new FactDate("ABT MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("ABT 19 NOV 1966"); Assert.AreEqual(new DateTime(1966, 11, 18), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 19), target.EndDate); target = new FactDate("UNKNOWN"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("BEF 1966"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1965, 12, 31), target.EndDate); target = new FactDate("BEF NOV 1966"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1966, 10, 31), target.EndDate); target = new FactDate("BEF 19 Nov 1966"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 18), target.EndDate); target = new FactDate("AFT 1966"); Assert.AreEqual(new DateTime(1967, 1, 1), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("AFT Nov 1966"); Assert.AreEqual(new DateTime(1966, 12, 01), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("AFT 19 Nov 1966"); Assert.AreEqual(new DateTime(1966, 11, 20), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); // Betweens target = new FactDate("BET 1983 AND 1986"); Assert.AreEqual(new DateTime(1983, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 12, 31), target.EndDate); target = new FactDate("BET SEP 1983 AND 1986"); Assert.AreEqual(new DateTime(1983, 9, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 12, 31), target.EndDate); target = new FactDate("BET 28 SEP 1983 AND 1986"); Assert.AreEqual(new DateTime(1983, 9, 28), target.StartDate); Assert.AreEqual(new DateTime(1986, 12, 31), target.EndDate); target = new FactDate("BET 1983 AND JUN 1986"); Assert.AreEqual(new DateTime(1983, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 30), target.EndDate); target = new FactDate("BET SEP 1983 AND JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 30), target.EndDate); target = new FactDate("BET 28 SEP 1983 AND JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 28), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 30), target.EndDate); target = new FactDate("BET 1983 AND 10 JUN 1986"); Assert.AreEqual(new DateTime(1983, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 10), target.EndDate); target = new FactDate("BET SEP 1983 AND 10 JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 1), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 10), target.EndDate); target = new FactDate("BET 28 SEP 1983 AND 10 JUN 1986"); Assert.AreEqual(new DateTime(1983, 9, 28), target.StartDate); Assert.AreEqual(new DateTime(1986, 6, 10), target.EndDate); // Double dates target = new FactDate("11 Mar 1747/48"); Assert.AreEqual(new DateTime(1748, 3, 11), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 11), target.EndDate); target = new FactDate("Mar 1747/48"); Assert.AreEqual(new DateTime(1748, 3, 1), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 31), target.EndDate); target = new FactDate("1747/48"); Assert.AreEqual(new DateTime(1748, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1748, 12, 31), target.EndDate); target = new FactDate("11 Mar 1747/1748"); Assert.AreEqual(new DateTime(1748, 3, 11), target.StartDate); Assert.AreEqual(new DateTime(1748, 3, 11), target.EndDate); target = new FactDate("15 FEB 1599/00"); Assert.AreEqual(new DateTime(1600, 2, 15), target.StartDate); Assert.AreEqual(new DateTime(1600, 2, 15), target.EndDate); // test some alternative date formats target = new FactDate("Q3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("3Q 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("ABT Q3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("ABT QTR3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("ABT QTR 3 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("SEP QTR 1947"); Assert.AreEqual(new DateTime(1947, 6, 1), target.StartDate); Assert.AreEqual(new DateTime(1947, 9, 30), target.EndDate); target = new FactDate("JAN FEB MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("JAN / FEB / MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("JAN/FEB/MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("BET JAN-MAR 1966"); Assert.AreEqual(new DateTime(1966, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("BTW 1914-1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("FROM 1915"); Assert.AreEqual(new DateTime(1915, 1, 1), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("TO 1915"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1915, 12, 31), target.EndDate); target = new FactDate("FROM 1914 TO 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("APR 1914-APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 30), target.EndDate); target = new FactDate("9-17 JUL 1824"); Assert.AreEqual(new DateTime(1824, 7, 9), target.StartDate); Assert.AreEqual(new DateTime(1824, 7, 17), target.EndDate); target = new FactDate("10 APR 1914 - 15 APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 15), target.EndDate); target = new FactDate("10 APR 1914-15 APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 15), target.EndDate); target = new FactDate("10 APR-15 JUL 1918"); Assert.AreEqual(new DateTime(1918, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 7, 15), target.EndDate); target = new FactDate("APR 1914 - APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 30), target.EndDate); target = new FactDate("1914 - 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("bet 1900 - 1910"); Assert.AreEqual(new DateTime(1900, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1910, 12, 31), target.EndDate); target = new FactDate("1914 to 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("1914 until 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("C1914"); Assert.AreEqual(new DateTime(1913, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1914, 12, 31), target.EndDate); target = new FactDate("ABT 966"); Assert.AreEqual(new DateTime(965, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); target = new FactDate("966"); Assert.AreEqual(new DateTime(966, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(966, 12, 31), target.EndDate); // interpreted dates target = new FactDate("INT 4 OCT 1723 4DA 8MNTH 1723"); Assert.AreEqual(new DateTime(1723, 10, 4), target.StartDate); Assert.AreEqual(new DateTime(1723, 10, 4), target.EndDate); }
private static FactDate BasicDates() { FactDate target = new FactDate("1966"); Assert.AreEqual(new DateTime(1966, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 12, 31), target.EndDate); target = new FactDate("19 Nov"); Assert.AreEqual(new DateTime(1, 11, 19), target.StartDate); Assert.AreEqual(new DateTime(9999, 11, 19), target.EndDate); target = new FactDate("Nov 1966"); Assert.AreEqual(new DateTime(1966, 11, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 30), target.EndDate); target = new FactDate("19 Nov 1966"); Assert.AreEqual(new DateTime(1966, 11, 19), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 19), target.EndDate); target = new FactDate("ABT 1966"); Assert.AreEqual(new DateTime(1965, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 12, 31), target.EndDate); target = new FactDate("About 1615"); Assert.AreEqual(new DateTime(1614, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1615, 12, 31), target.EndDate); target = new FactDate("ABT NOV 1966"); Assert.AreEqual(new DateTime(1966, 10, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 30), target.EndDate); target = new FactDate("ABT MAR 1966"); Assert.AreEqual(new DateTime(1965, 12, 1), target.StartDate); Assert.AreEqual(new DateTime(1966, 3, 31), target.EndDate); target = new FactDate("ABT 19 NOV 1966"); Assert.AreEqual(new DateTime(1966, 11, 18), target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 19), target.EndDate); target = new FactDate("UNKNOWN"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("BEF 1966"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1965, 12, 31), target.EndDate); target = new FactDate("BEF NOV 1966"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1966, 10, 31), target.EndDate); target = new FactDate("BEF 19 Nov 1966"); Assert.AreEqual(FactDate.MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1966, 11, 18), target.EndDate); target = new FactDate("AFT 1966"); Assert.AreEqual(new DateTime(1967, 1, 1), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("AFT Nov 1966"); Assert.AreEqual(new DateTime(1966, 12, 01), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("AFT 19 Nov 1966"); Assert.AreEqual(new DateTime(1966, 11, 20), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); target = new FactDate("AFT 19Ÿ©Nov 1966"); Assert.AreEqual(new DateTime(1966, 11, 20), target.StartDate); Assert.AreEqual(FactDate.MAXDATE, target.EndDate); return(target); }
private static FactDate MoreBetweens() { FactDate target = new FactDate("BTW 1914-1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("FROM 1915"); Assert.AreEqual(new DateTime(1915, 1, 1), target.StartDate); Assert.AreEqual(MAXDATE, target.EndDate); target = new FactDate("TO 1915"); Assert.AreEqual(MINDATE, target.StartDate); Assert.AreEqual(new DateTime(1915, 12, 31), target.EndDate); target = new FactDate("FROM 1914 TO 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("APR 1914-APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 30), target.EndDate); target = new FactDate("9-17 JUL 1824"); Assert.AreEqual(new DateTime(1824, 7, 9), target.StartDate); Assert.AreEqual(new DateTime(1824, 7, 17), target.EndDate); target = new FactDate("10 APR 1914 - 15 APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 15), target.EndDate); target = new FactDate("10 APR 1914-15 APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 15), target.EndDate); target = new FactDate("10 APR-15 JUL 1918"); Assert.AreEqual(new DateTime(1918, 4, 10), target.StartDate); Assert.AreEqual(new DateTime(1918, 7, 15), target.EndDate); target = new FactDate("APR 1914 - APR 1918"); Assert.AreEqual(new DateTime(1914, 4, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 4, 30), target.EndDate); target = new FactDate("1914 - 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("Bet. 1914-1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("bet 1900 - 1910"); Assert.AreEqual(new DateTime(1900, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1910, 12, 31), target.EndDate); target = new FactDate("1914 to 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("1914 until 1918"); Assert.AreEqual(new DateTime(1914, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1918, 12, 31), target.EndDate); target = new FactDate("Bet. 3 JAN 2001 AND 4 JAN 2001"); Assert.AreEqual(new DateTime(2001, 1, 3), target.StartDate); Assert.AreEqual(new DateTime(2001, 1, 4), target.EndDate); target = new FactDate("BET 3 AND 4 JAN 2001"); Assert.AreEqual(new DateTime(2001, 1, 3), target.StartDate); Assert.AreEqual(new DateTime(2001, 1, 4), target.EndDate); target = new FactDate("BET 9 AND 10 JAN 2001"); Assert.AreEqual(new DateTime(2001, 1, 9), target.StartDate); Assert.AreEqual(new DateTime(2001, 1, 10), target.EndDate); target = new FactDate("BET 11 AND 12 JAN 2001"); Assert.AreEqual(new DateTime(2001, 1, 11), target.StartDate); Assert.AreEqual(new DateTime(2001, 1, 12), target.EndDate); target = new FactDate("BET 997 AND 6 OCT 1014"); Assert.AreEqual(new DateTime(997, 1, 1), target.StartDate); Assert.AreEqual(new DateTime(1014, 10, 6), target.EndDate); return(target); }