def test_repeated_calls_with_shuffle():
    """Repeated calls should always lead to same split"""
    data = np.arange(100)
    dataset = DenseDesignMatrixWrapper(topo_view=to_4d_array(data), 
        y=np.zeros(100))
    splitter = SingleFoldSplitter(n_folds=10, 
        i_test_fold=9, shuffle=True)
    reference_datasets = splitter.split_into_train_valid_test(dataset)
    
    # 20 attemptsat splitting should all lead to same datasets!
    for _ in range(20):
        new_datasets = splitter.split_into_train_valid_test(dataset)
        for key in reference_datasets:
            assert np.array_equal(reference_datasets[key].get_topological_view(),
                new_datasets[key].get_topological_view())
def test_repeated_calls_with_shuffle():
    """Repeated calls should always lead to same split"""
    data = np.arange(100)
    dataset = DenseDesignMatrixWrapper(topo_view=to_4d_array(data),
                                       y=np.zeros(100))
    splitter = SingleFoldSplitter(n_folds=10, i_test_fold=9, shuffle=True)
    reference_datasets = splitter.split_into_train_valid_test(dataset)

    # 20 attemptsat splitting should all lead to same datasets!
    for _ in range(20):
        new_datasets = splitter.split_into_train_valid_test(dataset)
        for key in reference_datasets:
            assert np.array_equal(
                reference_datasets[key].get_topological_view(),
                new_datasets[key].get_topological_view())
def test_first_fold():
    data = np.arange(10)
    dataset = DenseDesignMatrixWrapper(topo_view=to_4d_array(data), y=np.zeros(10))
    splitter = SingleFoldSplitter(n_folds=10, 
        i_test_fold=0)
    datasets= splitter.split_into_train_valid_test(dataset)
    
    assert np.array_equal(to_4d_array(np.arange(1,9)), 
                   datasets['train'].get_topological_view() )
    assert np.array_equal(to_4d_array([9]), 
                   datasets['valid'].get_topological_view() )
    assert np.array_equal(to_4d_array([0]), 
                   datasets['test'].get_topological_view() )
def test_first_fold():
    data = np.arange(10)
    dataset = DenseDesignMatrixWrapper(topo_view=to_4d_array(data),
                                       y=np.zeros(10))
    splitter = SingleFoldSplitter(n_folds=10, i_test_fold=0)
    datasets = splitter.split_into_train_valid_test(dataset)

    assert np.array_equal(to_4d_array(np.arange(1, 9)),
                          datasets['train'].get_topological_view())
    assert np.array_equal(to_4d_array([9]),
                          datasets['valid'].get_topological_view())
    assert np.array_equal(to_4d_array([0]),
                          datasets['test'].get_topological_view())