Beispiel #1
0
def test_merge_predictions():
    "test merge_predictions"

    p = testing.micro_prediction()
    assert_raises(ValueError, nx.merge_predictions, [p, p])

    p2 = nx.merge_predictions([p, nx.Prediction()])
    ade(p2, p, 'corruption of merge predictions')

    p1 = testing.micro_prediction([0, 1, 2, 3, 4])
    p2 = testing.micro_prediction([5, 6, 7, 8, 9])
    p12 = nx.merge_predictions([p1, p2])
    ade(p12, p, 'corruption of merge predictions')

    p1 = testing.micro_prediction([0, 1, 2, 3])
    p2 = testing.micro_prediction([4, 5, 6])
    p3 = testing.micro_prediction([7, 8, 9])
    p123 = nx.merge_predictions([p1, p2, p3])
    ade(p123, p, 'corruption of merge predictions')

    p1 = testing.micro_prediction([9, 4, 3, 2])
    p2 = testing.micro_prediction([1, 8, 7])
    p3 = testing.micro_prediction([6, 5, 0])
    p123 = nx.merge_predictions([p1, p2, p3])
    ade(p123, p, 'corruption of merge predictions')

    p1 = testing.micro_prediction([0, 1, 2, 3, 4])
    p11 = p1[['model0', 'model1']]
    p12 = p1['model2']
    p2 = testing.micro_prediction([5, 6, 7, 8, 9])
    p21 = p2['model0']
    p22 = p2[['model1', 'model2']]
    p12 = nx.merge_predictions([p11, p21, p22, p12])
    ade(p12, p, 'corruption of merge predictions')
Beispiel #2
0
def test_concat_data():
    "test concat_data"
    d = nx.testing.micro_data()
    d1 = nx.testing.micro_data(slice(0, 5))
    d2 = nx.testing.micro_data(slice(5, None))
    d12 = nx.concat_data([d1, d2])
    ade(d12, d, "concat_data corrupted adta")
    assert_raises(IndexError, nx.concat_data, [d, d])
Beispiel #3
0
def test_prediction_roundtrip():
    "save/load roundtrip shouldn't change prediction"
    d = micro_data()
    m = nx.logistic()
    p = nx.production(m, d, verbosity=0)
    with tempfile.NamedTemporaryFile() as temp:
        p.save(temp.name)
        p2 = nx.load_prediction(temp.name)
        ade(p, p2, "prediction corrupted during roundtrip")
Beispiel #4
0
def test_data_era_isnotin():
    "test data.era_isnotin"
    d = micro_data()
    eras = ['era3', 'eraX']
    d0 = d.era_isnotin(eras)
    d1 = d.era_isin(eras)
    d01 = nx.concat_data([d0, d1])
    d01 = d01.loc[d.ids]
    ade(d01, d, "all rows not selected")
Beispiel #5
0
def test_data_roundtrip():
    "Saving and then loading data shouldn't change data"
    d = micro_data()
    with tempfile.NamedTemporaryFile() as temp:
        d.save(temp.name)
        d2 = load_data(temp.name)
        ade(d, d2, "data corrupted during roundtrip")
        d.save(temp.name, compress=True)
        d2 = load_data(temp.name)
        ade(d, d2, "data corrupted during roundtrip")
Beispiel #6
0
def test_prediction_to_csv():
    "make sure prediction.to_csv runs"
    p = testing.micro_prediction()
    with tempfile.NamedTemporaryFile() as temp:
        p['model1'].to_csv(temp.name)
        with testing.HiddenPrints():
            p['model1'].to_csv(temp.name, verbose=True)
        p2 = nx.load_prediction_csv(temp.name, 'model1')
        ade(p2, p['model1'], "prediction corrupted during roundtrip")
    assert_raises(ValueError, p.to_csv, 'unused')
Beispiel #7
0
def test_prediction_save():
    "test prediction.save with mode='a'"
    p = testing.micro_prediction()
    p1 = p['model0']
    p2 = p[['model1', 'model2']]
    with tempfile.NamedTemporaryFile() as temp:
        p1.save(temp.name)
        p2.save(temp.name, mode='a')
        p12 = nx.load_prediction(temp.name)
        ade(p, p12, "prediction corrupted during roundtrip")
Beispiel #8
0
def test_prediction_roundtrip():
    "save/load roundtrip shouldn't change prediction"
    p = testing.micro_prediction()
    with tempfile.NamedTemporaryFile() as temp:

        p.save(temp.name)
        p2 = nx.load_prediction(temp.name)
        ade(p, p2, "prediction corrupted during roundtrip")

        p.save(temp.name, compress=False)
        p2 = nx.load_prediction(temp.name)
        ade(p, p2, "prediction corrupted during roundtrip")
Beispiel #9
0
def test_prediction_save():
    """test prediction.save with mode='a'"""
    p = nx.testing.micro_prediction()
    p1 = p[('model0', 2)]
    p2 = p[[('model1', 1), ('model2', 3), ('model0', 5)]]
    path = None
    try:
        path = nx.testing.create_tempfile('numerox.h5')
        p1.save(path)
        p2.save(path, mode='a')
        p12 = nx.load_prediction(path)
    finally:
        nx.testing.delete_tempfile(path)
    ade(p, p12, "prediction corrupted during roundtrip")
Beispiel #10
0
def test_data_loc():
    "test data.loc"
    d = micro_data()
    msg = 'data.loc indexing error'
    ade(d.loc[['index1']], micro_data([1]), msg)
    ade(d.loc[['index4']], micro_data([4]), msg)
    ade(d.loc[['index4', 'index0']], micro_data([4, 0]), msg)
    ade(d.loc[['index4', 'index0', 'index2']], micro_data([4, 0, 2]), msg)
Beispiel #11
0
def test_prediction_roundtrip():
    """save/load roundtrip shouldn't change prediction"""
    p = nx.testing.micro_prediction()
    path = None
    try:
        path = nx.testing.create_tempfile('numerox.h5')

        p.save(path)
        p2 = nx.load_prediction(path)
        ade(p, p2, "prediction corrupted during roundtrip")

        p.save(path, compress=False)
        p2 = nx.load_prediction(path)
    finally:
        nx.testing.delete_tempfile(path)
    ade(p, p2, "prediction corrupted during roundtrip")
Beispiel #12
0
def test_prediction_to_csv():
    """make sure prediction.to_csv runs"""
    p = nx.testing.micro_prediction()
    path = None
    try:
        path = nx.testing.create_tempfile('numerox.h5')
        p[('model1', 1)].to_csv(path)
        with nx.testing.HiddenPrints():
            p[('model1', 1)].to_csv(path, verbose=True)
        p2 = nx.load_prediction_csv(path, 'model1')
        nx.load_prediction_csv(path)
    finally:
        nx.testing.delete_tempfile(path)
    ade(p2, p[('model1', 1)], "prediction corrupted during roundtrip")
    assert_raises(ValueError, p.to_csv, 'unused', 2)
    assert_raises(ValueError, p.to_csv, 'model1', 99)
Beispiel #13
0
def test_prediction_loc():
    "test prediction.loc"
    mp = testing.micro_prediction
    p = mp()
    msg = 'prediction.loc indexing error'
    ade(p.loc[['index1']], mp([1]), msg)
    ade(p.loc[['index4']], mp([4]), msg)
    ade(p.loc[['index4', 'index0']], mp([4, 0]), msg)
    ade(p.loc[['index4', 'index0', 'index2']], mp([4, 0, 2]), msg)
Beispiel #14
0
def test_data_roundtrip():
    "save/load roundtrip shouldn't change data"

    d = micro_data()
    path = None

    try:

        path = testing.create_tempfile('numerox.h5')

        d.save(path)
        d2 = nx.load_data(path)
        ade(d, d2, "data corrupted during roundtrip")

        d.save(path, compress=True)
        d2 = nx.load_data(path)
        ade(d, d2, "data corrupted during roundtrip")

        d = d['live']
        d.save(path)
        d2 = nx.load_data(path)
        ade(d, d2, "data corrupted during roundtrip")

    finally:

        testing.delete_tempfile(path)
Beispiel #15
0
def test_data_roundtrip():
    "save/load roundtrip shouldn't change data"
    d = micro_data()
    with tempfile.NamedTemporaryFile() as temp:

        d.save(temp.name)
        d2 = nx.load_data(temp.name)
        ade(d, d2, "data corrupted during roundtrip")

        d.save(temp.name, compress=True)
        d2 = nx.load_data(temp.name)
        ade(d, d2, "data corrupted during roundtrip")

        d = d['live']
        d.save(temp.name)
        d2 = nx.load_data(temp.name)
        ade(d, d2, "data corrupted during roundtrip")
Beispiel #16
0
def test_data_slice():
    "test data slicing"

    d = micro_data()

    msg = 'error slicing data by era'
    ade(d['era1':'era2'], micro_data([0, 1, 2]), msg)
    ade(d['era3':'era3'], micro_data([3, 4, 5]), msg)
    ade(d['eraX'], micro_data([7, 8, 9]), msg)
    ade(d['eraX'], micro_data([7, 8, 9]), msg)
    ade(d[::2], micro_data([0, 3, 4, 5, 7, 8, 9]), msg)
    ade(d[:], d, msg)
    ade(d[:'eraX'], d, msg)
    ade(d['era1':], d, msg)

    assert_raises(IndexError, d.__getitem__, slice('erg1', 'era2'))
    assert_raises(IndexError, d.__getitem__, slice('erg1', 'erg2'))
    assert_raises(IndexError, d.__getitem__, slice('era2', 'era1'))
    assert_raises(IndexError, d.__getitem__, slice('era1', 'era2', -2))
    assert_raises(IndexError, d.__getitem__, slice(1, 2))
Beispiel #17
0
def test_data_indexing():
    "test data indexing"

    d = micro_data()

    msg = 'error indexing data by era'
    ade(d['era1'], micro_data([0]), msg)
    ade(d['era2'], micro_data([1, 2]), msg)
    ade(d['era3'], micro_data([3, 4, 5]), msg)
    ade(d['era4'], micro_data([6]), msg)
    ade(d['eraX'], micro_data([7, 8, 9]), msg)

    msg = 'error indexing data by region'
    ade(d['train'], micro_data([0, 1, 2]), msg)
    ade(d['validation'], micro_data([3, 4, 5, 6]), msg)
    ade(d['test'], micro_data([7, 8]), msg)
    ade(d['live'], micro_data([9]), msg)

    msg = 'error indexing data by array'
    ade(d[d.y['bernie'] == 0], micro_data([0, 2, 4, 6, 8, 9]), msg)
    ade(d[d.era == 'era4'], micro_data([6]), msg)

    assert_raises(IndexError, d.__getitem__, 'era')
    assert_raises(IndexError, d.__getitem__, 'wtf')
    assert_raises(IndexError, d.__getitem__, None)
Beispiel #18
0
def test_data_indexing():
    "test data indexing"

    d = micro_data()

    msg = 'error indexing data by era'
    ade(d['era1'], micro_data([0]), msg)
    ade(d['era2'], micro_data([1, 2]), msg)
    ade(d['era3'], micro_data([3, 4, 5]), msg)
    ade(d['era4'], micro_data([6]), msg)
    ade(d['eraX'], micro_data([7, 8, 9]), msg)

    msg = 'error indexing data by region'
    ade(d['train'], micro_data([0, 1, 2]), msg)
    ade(d['validation'], micro_data([3, 4, 5, 6]), msg)
    ade(d['test'], micro_data([7, 8]), msg)
    ade(d['live'], micro_data([9]), msg)

    msg = 'error indexing data by array'
    ade(d[d.y == 0], micro_data([0, 2, 4, 6, 8]), msg)
    ade(d[d.era == 'era4'], micro_data([6]), msg)