def test_contains_with_same_range(self):
        dt_range = (
            datetime(year=2016, day=29, month=2,
                     hour=6, minute=0, second=0),
            datetime(year=2016, day=29, month=2,
                     hour=12, minute=0, second=0)
        )

        assert contains(dt_range, dt_range)
    def test_contains_that_contains(self):
        dt_range_1 = (
            datetime(year=2016, day=29, month=2,
                     hour=6, minute=0, second=0),
            datetime(year=2016, day=29, month=2,
                     hour=12, minute=0, second=0)
        )
        dt_range_2 = (
            datetime(year=2016, day=29, month=2,
                     hour=10, minute=20, second=10),
            datetime(year=2016, day=29, month=2,
                     hour=11, minute=22, second=12)
        )

        # if range is contained (and ranges are different) the opposite
        # is necessarily false
        assert contains(dt_range_1, dt_range_2)
        assert not contains(dt_range_2, dt_range_1)
    def test_contains_that_not_contains(self):
        dt_range_1 = (
            datetime(year=2016, day=29, month=2,
                     hour=6, minute=0, second=0),
            datetime(year=2016, day=29, month=2,
                     hour=12, minute=0, second=0)
        )
        dt_range_2 = (
            datetime(year=2016, day=29, month=2,
                     hour=9, minute=20, second=10),
            datetime(year=2016, day=29, month=2,
                     hour=15, minute=22, second=12)
        )

        assert not contains(dt_range_1, dt_range_2)