Esempio n. 1
0
        public void SubGridCellSegmentPassesDataWrapper_NonStatic_LocateTime_Test()
        {
            CellPass pass1 = TestCellPass();

            pass1.Time = DateTime.SpecifyKind(new DateTime(2000, 1, 1, 0, 0, 0), DateTimeKind.Utc);

            CellPass pass2 = TestCellPass();

            pass2.Time = DateTime.SpecifyKind(new DateTime(2000, 1, 2, 0, 0, 0), DateTimeKind.Utc);

            CellPass pass3 = TestCellPass();

            pass3.Time = DateTime.SpecifyKind(new DateTime(2000, 1, 3, 0, 0, 0), DateTimeKind.Utc);

            using (var item = new SubGridCellSegmentPassesDataWrapper_NonStatic())
            {
                item.AddPass(1, 1, pass1);
                item.AddPass(1, 1, pass2);
                item.AddPass(1, 1, pass3);

                Assert.Equal(3, item.PassCount(1, 1));

                bool exactMatch = item.LocateTime(1, 1,
                                                  DateTime.SpecifyKind(new DateTime(1999, 12, 31, 0, 0, 0), DateTimeKind.Utc), out int index);
                Assert.False(exactMatch, "Exact match found!!!");
                Assert.Equal(0, index);

                exactMatch = item.LocateTime(1, 1,
                                             DateTime.SpecifyKind(new DateTime(2000, 1, 1, 0, 0, 0), DateTimeKind.Utc), out index);
                Assert.True(exactMatch && index > -1 && item.Pass(1, 1, (int)index).Equals(pass1),
                            $"Failed to locate pass at DateTime(2000, 1, 1, 0, 0, 0), located pass is {item.Pass(1, 1, (int) index)}");

                exactMatch = item.LocateTime(1, 1,
                                             DateTime.SpecifyKind(new DateTime(2000, 1, 1, 0, 0, 1), DateTimeKind.Utc), out index);
                Assert.True(exactMatch == false && item.Pass(1, 1, (int)index - 1).Equals(pass1),
                            $"Failed to locate pass at DateTime(2000, 1, 1, 0, 0, 1), index = {index}");

                exactMatch = item.LocateTime(1, 1,
                                             DateTime.SpecifyKind(new DateTime(2000, 1, 2, 10, 0, 0), DateTimeKind.Utc), out index);
                Assert.True(!exactMatch && index > -1 && item.Pass(1, 1, (int)index - 1).Equals(pass2),
                            $"Failed to locate pass at DateTime(2001, 1, 2, 10, 0, 0), index = {index}");

                exactMatch = item.LocateTime(1, 1,
                                             DateTime.SpecifyKind(new DateTime(2001, 1, 1, 0, 0, 0), DateTimeKind.Utc), out index);
                Assert.True(!exactMatch && index > -1 && item.Pass(1, 1, (int)index - 1).Equals(pass3),
                            $"Failed to locate pass at DateTime(2001, 1, 1, 0, 0, 0), index = {index}");
            }
        }