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}"); } }