public virtual void ShouldParse() { CatchallTimeParser parser = new CatchallTimeParser(); CultureInfo culture = new CultureInfo("en-US"); Dictionary <string, DateTime> inputOutput = new Dictionary <string, DateTime>() { // regular hours { "0", GetDate(0, 0, 0) }, { "1", GetDate(1, 0, 0) }, { "2", GetDate(2, 0, 0) }, { "3", GetDate(3, 0, 0) }, { "4", GetDate(4, 0, 0) }, { "9", GetDate(9, 0, 0) }, { "10", GetDate(10, 0, 0) }, { "11", GetDate(11, 0, 0) }, { "20", GetDate(20, 0, 0) }, { "21", GetDate(21, 0, 0) }, { "23", GetDate(23, 0, 0) }, { "00", GetDate(0, 0, 0) }, { "01", GetDate(1, 0, 0) }, { "02", GetDate(2, 0, 0) }, { "03", GetDate(3, 0, 0) }, { "09", GetDate(9, 0, 0) }, // hours is too big { "25", GetDate(2, 5, 0) }, { "250", GetDate(2, 50, 0) }, { "35", GetDate(3, 5, 0) }, { "45", GetDate(4, 5, 0) }, { "95", GetDate(9, 5, 0) }, // pm designator { "95p", GetDate(21, 5, 0) }, { "21p", GetDate(21, 0, 0) }, // regular minutes { "60", GetDate(6, 0, 0) }, { "61", GetDate(6, 1, 0) }, { "69", GetDate(6, 9, 0) }, { "601", GetDate(6, 1, 0) }, { "611", GetDate(6, 11, 0) }, { "659", GetDate(6, 59, 0) }, // regular seconds { "6011", GetDate(6, 1, 1) }, { "6012", GetDate(6, 1, 2) }, { "6019", GetDate(6, 1, 9) }, { "60110", GetDate(6, 1, 10) }, { "60119", GetDate(6, 1, 19) }, { "60159", GetDate(6, 1, 59) }, }; foreach (KeyValuePair <string, DateTime> pair in inputOutput) { DateTime?result = null; Assert.IsTrue(parser.TryParse(pair.Key, culture, out result), String.Format(CultureInfo.InvariantCulture, "Could not parse {0}", pair.Key)); Assert.IsNotNull(result); Assert.AreEqual(result.Value.TimeOfDay, pair.Value.TimeOfDay); } }
public virtual void ShouldParse() { CatchallTimeParser parser = new CatchallTimeParser(); CultureInfo culture = new CultureInfo("en-US"); Dictionary<string, DateTime> inputOutput = new Dictionary<string, DateTime>() { // regular hours { "0", GetDate(0, 0, 0) }, { "1", GetDate(1, 0, 0) }, { "2", GetDate(2, 0, 0) }, { "3", GetDate(3, 0, 0) }, { "4", GetDate(4, 0, 0) }, { "9", GetDate(9, 0, 0) }, { "10", GetDate(10, 0, 0) }, { "11", GetDate(11, 0, 0) }, { "20", GetDate(20, 0, 0) }, { "21", GetDate(21, 0, 0) }, { "23", GetDate(23, 0, 0) }, { "00", GetDate(0, 0, 0) }, { "01", GetDate(1, 0, 0) }, { "02", GetDate(2, 0, 0) }, { "03", GetDate(3, 0, 0) }, { "09", GetDate(9, 0, 0) }, // hours is too big { "25", GetDate(2, 5, 0) }, { "250", GetDate(2, 50, 0) }, { "35", GetDate(3, 5, 0) }, { "45", GetDate(4, 5, 0) }, { "95", GetDate(9, 5, 0) }, // pm designator { "95p", GetDate(21, 5, 0) }, { "21p", GetDate(21, 0, 0) }, // regular minutes { "60", GetDate(6, 0, 0) }, { "61", GetDate(6, 1, 0) }, { "69", GetDate(6, 9, 0) }, { "601", GetDate(6, 1, 0) }, { "611", GetDate(6, 11, 0) }, { "659", GetDate(6, 59, 0) }, // regular seconds { "6011", GetDate(6, 1, 1) }, { "6012", GetDate(6, 1, 2) }, { "6019", GetDate(6, 1, 9) }, { "60110", GetDate(6, 1, 10) }, { "60119", GetDate(6, 1, 19) }, { "60159", GetDate(6, 1, 59) }, }; foreach (KeyValuePair<string, DateTime> pair in inputOutput) { DateTime? result = null; Assert.IsTrue(parser.TryParse(pair.Key, culture, out result), String.Format(CultureInfo.InvariantCulture, "Could not parse {0}", pair.Key)); Assert.IsNotNull(result); Assert.AreEqual(result.Value.TimeOfDay, pair.Value.TimeOfDay); } }