Updated script that can be controled by Nodejs web app
This commit is contained in:
@ -0,0 +1,73 @@
|
||||
import pytest
|
||||
|
||||
from pandas import (
|
||||
Interval,
|
||||
Timedelta,
|
||||
Timestamp,
|
||||
)
|
||||
|
||||
|
||||
class TestContains:
|
||||
def test_contains(self):
|
||||
interval = Interval(0, 1)
|
||||
assert 0.5 in interval
|
||||
assert 1 in interval
|
||||
assert 0 not in interval
|
||||
|
||||
interval_both = Interval(0, 1, "both")
|
||||
assert 0 in interval_both
|
||||
assert 1 in interval_both
|
||||
|
||||
interval_neither = Interval(0, 1, closed="neither")
|
||||
assert 0 not in interval_neither
|
||||
assert 0.5 in interval_neither
|
||||
assert 1 not in interval_neither
|
||||
|
||||
def test_contains_interval(self, inclusive_endpoints_fixture):
|
||||
interval1 = Interval(0, 1, "both")
|
||||
interval2 = Interval(0, 1, inclusive_endpoints_fixture)
|
||||
assert interval1 in interval1
|
||||
assert interval2 in interval2
|
||||
assert interval2 in interval1
|
||||
assert interval1 not in interval2 or inclusive_endpoints_fixture == "both"
|
||||
|
||||
def test_contains_infinite_length(self):
|
||||
interval1 = Interval(0, 1, "both")
|
||||
interval2 = Interval(float("-inf"), float("inf"), "neither")
|
||||
assert interval1 in interval2
|
||||
assert interval2 not in interval1
|
||||
|
||||
def test_contains_zero_length(self):
|
||||
interval1 = Interval(0, 1, "both")
|
||||
interval2 = Interval(-1, -1, "both")
|
||||
interval3 = Interval(0.5, 0.5, "both")
|
||||
assert interval2 not in interval1
|
||||
assert interval3 in interval1
|
||||
assert interval2 not in interval3 and interval3 not in interval2
|
||||
assert interval1 not in interval2 and interval1 not in interval3
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"type1",
|
||||
[
|
||||
(0, 1),
|
||||
(Timestamp(2000, 1, 1, 0), Timestamp(2000, 1, 1, 1)),
|
||||
(Timedelta("0h"), Timedelta("1h")),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"type2",
|
||||
[
|
||||
(0, 1),
|
||||
(Timestamp(2000, 1, 1, 0), Timestamp(2000, 1, 1, 1)),
|
||||
(Timedelta("0h"), Timedelta("1h")),
|
||||
],
|
||||
)
|
||||
def test_contains_mixed_types(self, type1, type2):
|
||||
interval1 = Interval(*type1)
|
||||
interval2 = Interval(*type2)
|
||||
if type1 == type2:
|
||||
assert interval1 in interval2
|
||||
else:
|
||||
msg = "^'<=' not supported between instances of"
|
||||
with pytest.raises(TypeError, match=msg):
|
||||
interval1 in interval2
|
Reference in New Issue
Block a user