@Test
public void parseDaysSinceDate(){

	DaysSinceDate sixties = (DaysSinceDate)TypeUtil.parse(DataType.DATE_DAYS_SINCE_1960, DATE);
	DaysSinceDate seventies = (DaysSinceDate)TypeUtil.parse(DataType.DATE_DAYS_SINCE_1970, DATE);
	DaysSinceDate eighties = (DaysSinceDate)TypeUtil.parse(DataType.DATE_DAYS_SINCE_1980, DATE);
	assertEquals(DataType.DATE_DAYS_SINCE_1960, TypeUtil.getDataType(sixties));
	assertEquals(DataType.DATE_DAYS_SINCE_1970, TypeUtil.getDataType(seventies));
	assertEquals(DataType.DATE_DAYS_SINCE_1980, TypeUtil.getDataType(eighties));
	assertEquals(10, ChronoUnit.YEARS.between(sixties.getEpoch(), seventies.getEpoch()));
	assertEquals(10, ChronoUnit.YEARS.between(seventies.getEpoch(), eighties.getEpoch()));
	try {
		int diff = (sixties).compareTo(seventies);
		fail();
	} catch(ClassCastException cce){
		// Ignored
	}
	assertEquals(sixties, TypeUtil.cast(DataType.DATE_DAYS_SINCE_1960, seventies));
	assertEquals(sixties, TypeUtil.cast(DataType.DATE_DAYS_SINCE_1960, eighties));
	assertEquals(seventies, TypeUtil.cast(DataType.DATE_DAYS_SINCE_1970, sixties));
	assertEquals(seventies, TypeUtil.cast(DataType.DATE_DAYS_SINCE_1970, eighties));
	assertEquals(eighties, TypeUtil.cast(DataType.DATE_DAYS_SINCE_1980, sixties));
	assertEquals(eighties, TypeUtil.cast(DataType.DATE_DAYS_SINCE_1980, seventies));
	assertEquals(0L, countDaysSince1960("1960-01-01"));
	assertEquals(1L, countDaysSince1960("1960-01-02"));
	assertEquals(31L, countDaysSince1960("1960-02-01"));
	assertEquals(-1L, countDaysSince1960("1959-12-31"));
	assertEquals(15796L, countDaysSince1960("2003-04-01"));
}