class TestRename(object): def setUp(self): self.stream = DataStream( IndexableDataset( OrderedDict([('X', numpy.ones((4, 2, 2))), ('y', numpy.array([0, 1, 0, 1]))]), axis_labels={'X': ('batch', 'width', 'height'), 'y': ('batch',)}), iteration_scheme=SequentialScheme(4, 2)) self.transformer = Rename( self.stream, {'X': 'features', 'y': 'targets'}) def test_renames_sources(self): assert_equal(self.transformer.sources, ('features', 'targets')) def test_leaves_data_unchanged(self): assert_equal( list(self.transformer.get_epoch_iterator()), [(numpy.ones((2, 2, 2)), numpy.array([0, 1])), (numpy.ones((2, 2, 2)), numpy.array([0, 1]))]) def test_raises_error_on_nonexistent_source_name(self): assert_raises(KeyError, Rename, self.stream, {'Z': 'features'}) def test_renames_axis_labels(self): assert_equal(self.transformer.axis_labels, {'features': ('batch', 'width', 'height'), 'targets': ('batch',)})
class TestRename(object): def setUp(self): self.stream = DataStream( IndexableDataset( OrderedDict([('X', numpy.ones((4, 2, 2))), ('y', numpy.array([0, 1, 0, 1]))]), axis_labels={'X': ('batch', 'width', 'height'), 'y': ('batch',)}), iteration_scheme=SequentialScheme(4, 2)) self.transformer = Rename( self.stream, {'X': 'features', 'y': 'targets'}) def test_renames_sources(self): assert_equal(self.transformer.sources, ('features', 'targets')) def test_leaves_data_unchanged(self): assert_equal( list(self.transformer.get_epoch_iterator()), [(numpy.ones((2, 2, 2)), numpy.array([0, 1])), (numpy.ones((2, 2, 2)), numpy.array([0, 1]))]) def test_raises_error_on_nonexistent_source_name(self): assert_raises(KeyError, Rename, self.stream, {'Z': 'features'}) def test_raises_on_invalid_kwargs(self): assert_raises(ValueError, Rename, self.stream, {'X': 'features'}, on_non_existent='foo') def test_name_clash(self): assert_raises(KeyError, Rename, self.stream, {'X': 'y'}) def test_name_swap(self): assert_equal(Rename(self.stream, {'X': 'y', 'y': 'X'}, on_non_existent='ignore').sources, ('y', 'X')) def test_raises_on_not_one_to_one(self): assert_raises(KeyError, Rename, self.stream, {'X': 'features', 'y': 'features'}) def test_intentionally_ignore_missing(self): assert_equal(Rename(self.stream, {'X': 'features', 'y': 'targets', 'Z': 'fudgesicle'}, on_non_existent='ignore').sources, ('features', 'targets')) def test_not_one_to_one_ok_if_not_a_source_in_data_stream(self): assert_equal(Rename(self.stream, {'X': 'features', 'y': 'targets', 'Z': 'targets'}, on_non_existent='ignore').sources, ('features', 'targets')) def test_renames_axis_labels(self): assert_equal(self.transformer.axis_labels, {'features': ('batch', 'width', 'height'), 'targets': ('batch',)})
def test_rename(): stream = DataStream(IndexableDataset( OrderedDict([('X', numpy.ones((4, 2, 2))), ('y', numpy.array([0, 1, 0, 1]))])), iteration_scheme=SequentialScheme(4, 2)) transformer = Rename(stream, {'X': 'features', 'y': 'targets'}) assert_equal(transformer.sources, ('features', 'targets')) assert_equal(list(transformer.get_epoch_iterator()), [(numpy.ones((2, 2, 2)), numpy.array([0, 1])), (numpy.ones((2, 2, 2)), numpy.array([0, 1]))]) assert_raises(ValueError, transformer.get_data, [0, 1]) assert_raises(KeyError, Rename, stream, {'Z': 'features'})
def test_rename(): stream = DataStream( IndexableDataset(OrderedDict([("X", numpy.ones((4, 2, 2))), ("y", numpy.array([0, 1, 0, 1]))])), iteration_scheme=SequentialScheme(4, 2), ) transformer = Rename(stream, {"X": "features", "y": "targets"}) assert_equal(transformer.sources, ("features", "targets")) assert_equal( list(transformer.get_epoch_iterator()), [(numpy.ones((2, 2, 2)), numpy.array([0, 1])), (numpy.ones((2, 2, 2)), numpy.array([0, 1]))], ) assert_raises(ValueError, transformer.get_data, [0, 1]) assert_raises(KeyError, Rename, stream, {"Z": "features"})
def test_rename(): stream = DataStream( IndexableDataset( OrderedDict([('X', numpy.ones((4, 2, 2))), ('y', numpy.array([0, 1, 0, 1]))])), iteration_scheme=SequentialScheme(4, 2)) transformer = Rename(stream, {'X': 'features', 'y': 'targets'}) assert_equal(transformer.sources, ('features', 'targets')) assert_equal( list(transformer.get_epoch_iterator()), [(numpy.ones((2, 2, 2)), numpy.array([0, 1])), (numpy.ones((2, 2, 2)), numpy.array([0, 1]))]) assert_raises(ValueError, transformer.get_data, [0, 1]) assert_raises(KeyError, Rename, stream, {'Z': 'features'})
class TestRename(object): def setUp(self): self.stream = DataStream( IndexableDataset( OrderedDict([('X', numpy.ones((4, 2, 2))), ('y', numpy.array([0, 1, 0, 1]))]), axis_labels={'X': ('batch', 'width', 'height'), 'y': ('batch',)}), iteration_scheme=SequentialScheme(4, 2)) self.transformer = Rename( self.stream, {'X': 'features', 'y': 'targets'}) def test_renames_sources(self): assert_equal(self.transformer.sources, ('features', 'targets')) def test_leaves_data_unchanged(self): assert_equal( list(self.transformer.get_epoch_iterator()), [(numpy.ones((2, 2, 2)), numpy.array([0, 1])), (numpy.ones((2, 2, 2)), numpy.array([0, 1]))]) def test_raises_error_on_nonexistent_source_name(self): assert_raises(KeyError, Rename, self.stream, {'Z': 'features'}) def test_raises_on_invalid_kwargs(self): assert_raises(ValueError, Rename, self.stream, {'X': 'features'}, on_non_existent='foo') def test_name_clash(self): assert_raises(KeyError, Rename, self.stream, {'X': 'y'}) def test_not_really_a_name_clash(self): try: # This should not raise an error, because we're ignoring # non-existent sources. So renaming a non-existent source # cannot create a name clash. Rename(self.stream, {'foobar': 'y'}, on_non_existent='ignore') except KeyError: assert False # Regression. def test_name_swap(self): assert_equal(Rename(self.stream, {'X': 'y', 'y': 'X'}, on_non_existent='ignore').sources, ('y', 'X')) def test_raises_on_not_one_to_one(self): assert_raises(KeyError, Rename, self.stream, {'X': 'features', 'y': 'features'}) def test_intentionally_ignore_missing(self): assert_equal(Rename(self.stream, {'X': 'features', 'y': 'targets', 'Z': 'fudgesicle'}, on_non_existent='ignore').sources, ('features', 'targets')) def test_not_one_to_one_ok_if_not_a_source_in_data_stream(self): assert_equal(Rename(self.stream, {'X': 'features', 'y': 'targets', 'Z': 'targets'}, on_non_existent='ignore').sources, ('features', 'targets')) def test_renames_axis_labels(self): assert_equal(self.transformer.axis_labels, {'features': ('batch', 'width', 'height'), 'targets': ('batch',)})