Skip to content

Commit f26f708

Browse files
Add tests for timesnap boundary conditions.
1 parent 43c0818 commit f26f708

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tests/btrdb_integration/test_streamset.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,36 @@ def test_arrow_streamset_to_dataframe(conn, tmp_collection):
115115
}
116116
expected_df = pd.DataFrame(expected_dat, index=pd.DatetimeIndex(expected_times))
117117
assert values.equals(expected_df)
118+
119+
def test_timesnap_backward_keeps_in_range(conn, tmp_collection):
120+
sec = 10**9
121+
tv = [
122+
[int(0.75 * sec), 0.75],
123+
[1 * sec, 1.0],
124+
[2 * sec, 2.0],
125+
]
126+
s = conn.create(new_uuid(), tmp_collection, tags={"name": "s"})
127+
s.insert(tv)
128+
ss = btrdb.stream.StreamSet([s]).filter(
129+
start=1 * sec, end=3 * sec, sampling_frequency=1
130+
)
131+
values = ss.arrow_values()
132+
assert [1 * sec, 2 * sec] == [t.value for t in values["time"]]
133+
assert [1.0, 2.0] == [v.as_py() for v in values[tmp_collection + "/s"]]
134+
135+
136+
def test_timesnap_forward_keeps_in_range(conn, tmp_collection):
137+
sec = 10**9
138+
tv = [
139+
[1 * sec, 1.0],
140+
[2 * sec, 2.0],
141+
[int(2.75 * sec), 2.75],
142+
]
143+
s = conn.create(new_uuid(), tmp_collection, tags={"name": "s"})
144+
s.insert(tv)
145+
ss = btrdb.stream.StreamSet([s]).filter(start=1 * sec, sampling_frequency=1)
146+
values = ss.filter(end=int(3.0 * sec)).arrow_values()
147+
assert [1 * sec, 2 * sec] == [t.value for t in values["time"]]
148+
assert [1.0, 2.0] == [v.as_py() for v in values[tmp_collection + "/s"]]
149+
# Same result if skipping past end instead of to end.
150+
assert values == ss.filter(end=int(2.9 * sec)).arrow_values()

0 commit comments

Comments
 (0)