diff --git a/Azaion.Annotator.Test/Azaion.Annotator.Test.csproj b/Azaion.Annotator.Test/Azaion.Annotator.Test.csproj
index ac0cca5..239175f 100644
--- a/Azaion.Annotator.Test/Azaion.Annotator.Test.csproj
+++ b/Azaion.Annotator.Test/Azaion.Annotator.Test.csproj
@@ -11,6 +11,7 @@
+
diff --git a/Azaion.Annotator.Test/IntervalTreeTest.cs b/Azaion.Annotator.Test/IntervalTreeTest.cs
new file mode 100644
index 0000000..f0de9bd
--- /dev/null
+++ b/Azaion.Annotator.Test/IntervalTreeTest.cs
@@ -0,0 +1,32 @@
+using FluentAssertions;
+using Xunit;
+using IntervalTree;
+
+namespace Azaion.Annotator.Test;
+
+public class IntervalTreeTest
+{
+ [Theory]
+ [MemberData(nameof(IntervalTreeTestQueryTestData))]
+ public void IntervalTreeTestQuery(int second, string[] expected)
+ {
+ var mainTree = new IntervalTree
+ {
+ { TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(3), "res01" },
+ { TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(4), "res02" },
+ { TimeSpan.FromSeconds(4), TimeSpan.FromSeconds(7), "res04" },
+ { TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(8), "res05" },
+ };
+
+ var result = mainTree.Query(TimeSpan.FromSeconds(second)).ToArray();
+ result.Should().Equal(expected);
+ }
+
+ public static IEnumerable