Пример #1
0
def test_mask():

    start = datetime.datetime(2015, 3, 1)

    # v. simple
    a = TimeSeries()
    a.set(start, 1)
    a.set(datetime.datetime(2015, 4, 2), 0)
    a.set(datetime.datetime(2015, 4, 3), 1)
    a.set(datetime.datetime(2015, 4, 4), 0)
    end = datetime.datetime(2015, 4, 5)

    mask = TimeSeries(default=False)
    mask[datetime.datetime(2015, 4, 1)] = True
    mask[datetime.datetime(2015, 4, 3)] = False

    # not normalized
    distribution = a.distribution(
        start=start,
        end=end,
        normalized=False,
        mask=mask,
    )
    assert distribution[0] == 24 * 60 * 60  # one day
    assert distribution[1] == 24 * 60 * 60

    # normalized
    distribution = a.distribution(
        start=start,
        end=end,
        mask=mask,
    )
    assert distribution[0] == 0.5
    assert distribution[1] == 0.5
Пример #2
0
def test_mask():

    start_time = datetime.datetime(2015, 3, 1)

    # v. simple
    a = TimeSeries()
    a.set(start_time, 1)
    a.set(datetime.datetime(2015, 3, 2), 0)
    a.set(datetime.datetime(2015, 3, 3), 1)
    a.set(datetime.datetime(2015, 3, 4), 0)
    end_time = datetime.datetime(2015, 3, 5)

    mask = TimeSeries()
    mask.set(datetime.datetime(2015, 3, 1), 1)
    mask.set(datetime.datetime(2015, 3, 3), 0)
    
    # not normalized
    distribution = a.distribution(
        start_time=start_time, end_time=end_time, normalized=False, mask=mask,
    )
    assert distribution[0] == 24 * 60 * 60 # one day
    assert distribution[1] == 24 * 60 * 60

    # normalized
    distribution = a.distribution(
        start_time=start_time, end_time=end_time, mask=mask,
    )
    assert distribution[0] == 0.5
    assert distribution[1] == 0.5
Пример #3
0
def test_distribution():

    start = datetime.datetime(2015, 3, 1)

    # v. simple
    a = TimeSeries()
    a.set(start, 1)
    a.set(datetime.datetime(2015, 3, 2), 0)
    a.set(datetime.datetime(2015, 3, 3), 1)
    a.set(datetime.datetime(2015, 3, 4), 0)
    end = datetime.datetime(2015, 3, 5)

    # not normalized
    distribution = a.distribution(
        start=start,
        end=end,
        normalized=False,
    )
    assert distribution[0] == 24 * 60 * 60 * 2  # two days
    assert distribution[1] == 24 * 60 * 60 * 2

    # normalized
    distribution = a.distribution(start=start, end=end)
    assert distribution[0] == 0.5
    assert distribution[1] == 0.5
Пример #4
0
def test_mask():

    start = datetime.datetime(2015, 3, 1)

    # v. simple
    a = TimeSeries()
    a.set(start, 1)
    a.set(datetime.datetime(2015, 3, 2), 0)
    a.set(datetime.datetime(2015, 3, 3), 1)
    a.set(datetime.datetime(2015, 3, 4), 0)
    end = datetime.datetime(2015, 3, 5)

    mask = Domain(datetime.datetime(2015, 3, 1), datetime.datetime(2015, 3, 3))

    # not normalized
    distribution = a.distribution(
        start=start,
        end=end,
        normalized=False,
        mask=mask,
    )
    assert distribution[0] == 24 * 60 * 60  # one day
    assert distribution[1] == 24 * 60 * 60

    # normalized
    distribution = a.distribution(
        start=start,
        end=end,
        mask=mask,
    )
    assert distribution[0] == 0.5
    assert distribution[1] == 0.5
Пример #5
0
def test_distribution_empty():

    ts = TimeSeries()

    mask = TimeSeries(default=0)
    mask[0] = 1
    mask[2] = 0

    # distribution with default args and no default value on empty
    # TimeSeries doesn't know what to do
    nose.tools.assert_raises(ValueError, ts.distribution)

    # distribution with start and end, but no default value on empty
    # TimeSeries doesn't know what to do
    nose.tools.assert_raises(ValueError, ts.distribution, 0, 10)

    # no matter what is passed in to distribution, if the default
    # value is not set on an empty TimeSeries this should be an error
    nose.tools.assert_raises(ValueError, ts.distribution, mask=mask)

    ts = TimeSeries(default=0)

    # no mask or start/end on empty TimeSeries, don't know what to do
    nose.tools.assert_raises(ValueError, ts.distribution)

    # start and end or mask given, is fine
    distribution = ts.distribution(0, 10)
    assert distribution[0] == 1.0

    distribution = ts.distribution(mask=mask)
    assert distribution[0] == 1.0
Пример #6
0
def test_none_handling():
    ts = TimeSeries()
    ts[1] = (0, 1)
    ts[2] = (None, 0)
    ts[3] = (2, 0)

    # print(ts.distribution(normalized=False))
    assert (ts.distribution()[(0, 1)] == 0.5)
    assert (ts.distribution()[(None, 0)] == 0.5)
Пример #7
0
def test_distribution():
    ts = TimeSeries([[1, 1], [2, 0], [6, 1], [8, 0]],
                    domain=Domain([1, 2], [3, 5], [6, 8]))

    distribution = ts.distribution()
    assert distribution[0] == 2. / 5
    assert distribution[1] == 3. / 5

    distribution = ts.distribution(0, 9)
    assert distribution[0] == 2. / 5
    assert distribution[1] == 3. / 5
Пример #8
0
def test_default_values():

    # v. simple
    a = TimeSeries()
    a.set(datetime.datetime(2015, 3, 1), 1)
    a.set(datetime.datetime(2015, 3, 2), 0)
    a.set(datetime.datetime(2015, 3, 3), 1)
    a.set(datetime.datetime(2015, 3, 4), 0)

    start = datetime.datetime(2015, 3, 1)
    end = datetime.datetime(2015, 3, 4)
    default = a.distribution()
    distribution = a.distribution(start=start, end=end)
    assert default == distribution
    assert distribution[0] == 1.0 / 3
    assert distribution[1] == 2.0 / 3
Пример #9
0
def test_integer_times():

    # v. simple
    a = TimeSeries()
    a[0] = 1
    a[1] = 0
    a[3] = 1
    a[4] = 0

    distribution = a.distribution(start=0, end=6)

    assert distribution[0] == 2.0 / 3
    assert distribution[1] == 1.0 / 3
Пример #10
0
def test_distribution():

    start_time = datetime.datetime(2015, 3, 1)

    # v. simple
    a = TimeSeries()
    a.set(start_time, 1)
    a.set(datetime.datetime(2015, 3, 2), 0)
    a.set(datetime.datetime(2015, 3, 3), 1)
    a.set(datetime.datetime(2015, 3, 4), 0)
    end_time = datetime.datetime(2015, 3, 5)

    # not normalized
    distribution = a.distribution(
        start_time=start_time, end_time=end_time, normalized=False,
    )
    assert distribution[0] == 24 * 60 * 60 * 2 # two days
    assert distribution[1] == 24 * 60 * 60 * 2

    # normalized
    distribution = a.distribution(start_time=start_time, end_time=end_time)
    assert distribution[0] == 0.5
    assert distribution[1] == 0.5
Пример #11
0
def test_default_values():

    # v. simple
    a = TimeSeries()
    a.set(datetime.datetime(2015, 3, 1), 1)
    a.set(datetime.datetime(2015, 3, 2), 0)
    a.set(datetime.datetime(2015, 3, 3), 1)
    a.set(datetime.datetime(2015, 3, 4), 0)

    # not normalized
    distribution = a.distribution()

    total = 24 * 60 * 60 * 3
    assert distribution[0] == 24 * 60 * 60 * 1 / float(total)
    assert distribution[1] == 24 * 60 * 60 * 2 / float(total)