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')
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])
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")
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")
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")
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')
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")
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")
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")
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)
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")
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)
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)
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)
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")
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))
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)
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)