public void TimeParserTest() { const string data = "Ioc getting started 60min"; var parser = new TalkParser(); var result = parser.Time(data); Assert.IsTrue(parser.Success); Assert.AreEqual(60, result.TotalMinutes); }
public void GivenAnInputTextFileWithTopicsAndDuration_ThenCreateAListOfTalks() { var talksParser = new TalkParser(); var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); var localPath = new Uri(path).LocalPath; var result = talksParser.Parse(localPath + @"\input.txt"); Assert.That(result.Count, Is.GreaterThanOrEqualTo(1)); }
static void Main(string[] args) { string currentDirectory = Directory.GetCurrentDirectory(); string filePath = Path.Combine(currentDirectory, "input.txt"); var parser = new TalkParser(); var talks = parser.Parse(filePath); var trackService = new TrackService(); var tracks = trackService.CreateTracks(talks); var trackNumber = 1; foreach (var track in tracks) { var morningStartTime = new TimeSpan(09, 00, 0); var afternoonStartTime = new TimeSpan(01, 00, 0); Console.WriteLine("Track: " + trackNumber++); Console.WriteLine(""); foreach (var talk in track.MorningSesion) { Console.WriteLine(morningStartTime.ToString(@"hh\:mm") + " AM" + " " + talk.Topic + " " + (talk.Duration == 5 ? "lightning" : talk.Duration + " Min")); morningStartTime = morningStartTime.Add(new TimeSpan(00, talk.Duration, 00)); } Console.WriteLine("12:00 PM Lunch"); foreach (var talk in track.AfternoonSession) { Console.WriteLine(afternoonStartTime.ToString(@"hh\:mm") + " PM" + " " + talk.Topic + " " + (talk.Duration == 5 ? "lightning" : talk.Duration + " Min")); afternoonStartTime = afternoonStartTime.Add(new TimeSpan(00, talk.Duration, 00)); } Console.WriteLine("05:00 PM Networking Event"); Console.WriteLine(""); } Console.ReadLine(); }
static void Main(string[] args) { //Read the input data. DataReader reader = new DataReader(); string[] lines = reader.ReadInputFromFile(); //Optional : Print the raw input data. ConsolePrinter printer = new ConsolePrinter(); printer.PrintArray(lines); //Parse the raw input data and extract talk details. TalkParser parser = new TalkParser(); List <Talk> events = parser.ExtractEvents(lines); //Schedule the talks according to the given constraints. TalkScheduler scheduler = new TalkScheduler(); Dictionary <int, Track> tracks = scheduler.ScheduleTalks(events); //Print the final output schedule in the console. printer.PrintTracks(tracks); Console.ReadKey(); }