@Test
public void testIsValidDate() {

    assertEquals(true, isValidDate_Zeros(dt(0, 0, 0)));
    assertEquals(false, isValidDate_NoZeros(dt(0, 0, 0)));
    assertEquals(false, isValidDate_NoZeros(dt(2013, 0, 0)));
    assertEquals(false, isValidDate_NoZeros(dt(2013, 1, 0)));
    assertEquals(true, isValidDate_NoZeros(dt(2013, 1, 31)));
    
    assertEquals(true, isValidDate(dt(0, 1, 31), ZeroFlag.YEAR));
    assertEquals(false, isValidDate(dt(2013, 0, 31), ZeroFlag.YEAR));
    assertEquals(false, isValidDate(dt(2013, 1, 0), ZeroFlag.YEAR));
    assertEquals(true, isValidDate(dt(2013, 0, 31), ZeroFlag.MONTH));
    assertEquals(false, isValidDate(dt(0, 1, 31), ZeroFlag.MONTH));
    assertEquals(false, isValidDate(dt(2013, 1, 0), ZeroFlag.MONTH));
    assertEquals(true, isValidDate(dt(2013, 1, 0), ZeroFlag.DAY));
    assertEquals(false, isValidDate(dt(0, 1, 31), ZeroFlag.DAY));
    assertEquals(false, isValidDate(dt(2013, 0, 31), ZeroFlag.DAY));
}