public void TestCompute() { long defaultCurrent = DateTimeParsingFunctions.ParseDefaultMSec("2002-05-30T09:51:01.150"); // millisecond adds TimePeriod oneMsec = new TimePeriod().SetMillis(1); AssertCompute(defaultCurrent, oneMsec, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24 * 60 * 60 * 1000L), "2002-05-30T09:51:01.151"); AssertCompute(defaultCurrent, oneMsec, "2001-06-01T00:00:00.000", new LongAssertionAtLeast(363 * 24 * 60 * 60 * 1000L), "2002-05-30T09:51:01.151"); // 10-millisecond adds TimePeriod tenMsec = new TimePeriod().SetMillis(10); AssertCompute(defaultCurrent, tenMsec, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24 * 60 * 60 * 100L), "2002-05-30T09:51:01.160"); // 100-millisecond adds TimePeriod hundredMsec = new TimePeriod().SetMillis(100); AssertCompute(defaultCurrent, hundredMsec, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24 * 60 * 60 * 10L), "2002-05-30T09:51:01.200"); // 1-hour-in-millisecond adds TimePeriod oneHourInMsec = new TimePeriod().SetMillis(60 * 60 * 1000); AssertCompute(defaultCurrent, oneHourInMsec, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24), "2002-05-30T10:00:00.000"); // second adds TimePeriod oneSec = new TimePeriod().SetSeconds(1); AssertCompute(defaultCurrent, oneSec, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24 * 60 * 60L), "2002-05-30T09:51:02.000"); AssertCompute(defaultCurrent, oneSec, "2002-05-30T09:51:00.150", new LongAssertionAtLeast(2), "2002-05-30T09:51:02.150"); AssertCompute(defaultCurrent, oneSec, "2002-05-30T09:51:00.151", new LongAssertionAtLeast(1), "2002-05-30T09:51:01.151"); AssertCompute(defaultCurrent, oneSec, "2002-05-30T09:51:01.149", new LongAssertionAtLeast(1), "2002-05-30T09:51:02.149"); AssertCompute(defaultCurrent, oneSec, "2002-05-30T09:51:01.150", new LongAssertionAtLeast(1), "2002-05-30T09:51:02.150"); AssertCompute(defaultCurrent, oneSec, "2002-05-30T09:51:01.151", new LongAssertionAtLeast(0), "2002-05-30T09:51:01.151"); // 10-second adds TimePeriod tenSec = new TimePeriod().SetSeconds(10); AssertCompute(defaultCurrent, tenSec, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24 * 60 * 6L), "2002-05-30T09:51:10.000"); AssertCompute(defaultCurrent, tenSec, "2002-05-30T09:50:00.000", new LongAssertionExact(7L), "2002-05-30T09:51:10.000"); AssertCompute(defaultCurrent, tenSec, "2002-05-30T09:50:51.149", new LongAssertionExact(2L), "2002-05-30T09:51:11.149"); AssertCompute(defaultCurrent, tenSec, "2002-05-30T09:50:51.150", new LongAssertionExact(2L), "2002-05-30T09:51:11.150"); AssertCompute(defaultCurrent, tenSec, "2002-05-30T09:50:51.151", new LongAssertionExact(1L), "2002-05-30T09:51:01.151"); AssertCompute(defaultCurrent, tenSec, "2002-05-30T09:51:00.149", new LongAssertionExact(1L), "2002-05-30T09:51:10.149"); AssertCompute(defaultCurrent, tenSec, "2002-05-30T09:51:01.149", new LongAssertionExact(1L), "2002-05-30T09:51:11.149"); AssertCompute(defaultCurrent, tenSec, "2002-05-30T09:51:01.150", new LongAssertionExact(1L), "2002-05-30T09:51:11.150"); // minute adds TimePeriod oneMin = new TimePeriod().SetMinutes(1); AssertCompute(defaultCurrent, oneMin, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24 * 60), "2002-05-30T09:52:00.000"); // 10-minute adds TimePeriod tenMin = new TimePeriod().SetMinutes(10); AssertCompute(defaultCurrent, tenMin, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24 * 6), "2002-05-30T10:00:00.000"); // 1-hour adds TimePeriod oneHour = new TimePeriod().SetHours(1); AssertCompute(defaultCurrent, oneHour, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365 * 24), "2002-05-30T10:00:00.000"); // 1-day adds TimePeriod oneDay = new TimePeriod().SetDays(1); AssertCompute(defaultCurrent, oneDay, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 365), "2002-05-31T00:00:00.000"); // 1-month adds TimePeriod oneMonth = new TimePeriod().SetMonths(1); AssertCompute(defaultCurrent, oneMonth, "1980-01-01T00:00:00.000", new LongAssertionAtLeast(22 * 12), "2002-06-01T00:00:00.000"); // 1-year adds TimePeriod oneYear = new TimePeriod().SetYears(1); AssertCompute(defaultCurrent, oneYear, "1980-01-01T00:00:00.000", new LongAssertionExact(23), "2003-01-01T00:00:00.000"); // Uneven adds TimePeriod unevenOne = new TimePeriod().SetYears(1).SetMonths(2).SetDays(3); AssertCompute(defaultCurrent, unevenOne, "1980-01-01T00:00:00.000", new LongAssertionExact(20), "2003-06-30T00:00:00.000"); AssertCompute(defaultCurrent, unevenOne, "2002-01-01T00:00:00.000", new LongAssertionExact(1), "2003-03-04T00:00:00.000"); AssertCompute(defaultCurrent, unevenOne, "2001-01-01T00:00:00.000", new LongAssertionExact(2), "2003-05-07T00:00:00.000"); }
private static void SendTimeEvent( RegressionEnvironment env, string time) { env.AdvanceTime(DateTimeParsingFunctions.ParseDefaultMSec(time)); }
private long Parse(string date) { return(DateTimeParsingFunctions.ParseDefaultMSec(date)); }