Example #1
0
        public void ParseVisits()
        {
            var visits = ParsingTask.ParseVisitRecords(
                new[]
            {
                visitsHeaderLine,
                "1;2;2000-01-30;12:00:00",
                "2;2;2000-01-31;12:01:00",
                "1;3;2000-01-29;01:00:00",
                "3;4;2000-02-01;09:10:11"
            },
                new Dictionary <int, SlideRecord>
            {
                { 2, new SlideRecord(2, SlideType.Quiz, "quiz slide") },
                { 3, new SlideRecord(3, SlideType.Exercise, "exercise slide") },
                { 4, new SlideRecord(4, SlideType.Theory, "theory slide") },
                { 5, new SlideRecord(5, SlideType.Theory, "theory slide") }
            });

            Assert.That(visits, Is.EqualTo(new[]
            {
                new VisitRecord(1, 2, new DateTime(2000, 01, 30, 12, 0, 0), SlideType.Quiz),
                new VisitRecord(2, 2, new DateTime(2000, 01, 31, 12, 1, 0), SlideType.Quiz),
                new VisitRecord(1, 3, new DateTime(2000, 01, 29, 01, 0, 0), SlideType.Exercise),
                new VisitRecord(3, 4, new DateTime(2000, 02, 01, 09, 10, 11), SlideType.Theory)
            }));
        }
Example #2
0
        public void ParseVisits_Fails_OnIncorrectDate()
        {
            var lines     = new[] { visitsHeaderLine, "1;2;2000-13-30;12:00:00" };
            var exception = Assert.Throws <FormatException>(() =>
                                                            ParsingTask.ParseVisitRecords(lines, new Dictionary <int, SlideRecord>()).ToList()
                                                            );

            Assert.That(exception.Message, Is.EqualTo("Wrong line [1;2;2000-13-30;12:00:00]"));
        }
Example #3
0
        private static void Main()
        {
            var encoding     = Encoding.GetEncoding(1251);
            var slideRecords = ParsingTask.ParseSlideRecords(File.ReadAllLines("slides.txt", encoding));
            var visitRecords = ParsingTask.ParseVisitRecords(File.ReadAllLines("visits.txt", encoding), slideRecords).ToList();

            foreach (var slideType in new[] { SlideType.Theory, SlideType.Exercise, SlideType.Quiz })
            {
                var time = StatisticsTask.GetMedianTimePerSlide(visitRecords, slideType);
                Console.WriteLine("Median time per slide '{0}': {1} mins", slideType, time);
            }
        }
Example #4
0
        public void ParseEmptyVisits()
        {
            var visits = ParsingTask.ParseVisitRecords(new[] { visitsHeaderLine }, new Dictionary <int, SlideRecord>());

            Assert.That(visits, Is.Empty);
        }