def test_factor(): "Test basic Factor functionality" # removing a cell f = Factor('aabbcc') eq_(f.cells, ('a', 'b', 'c')) eq_(f.n_cells, 3) f[f == 'c'] = 'a' eq_(f.cells, ('a', 'b')) eq_(f.n_cells, 2) # cell order a = np.tile(np.arange(3), 3) # alphabetical f = Factor(a, labels={0: 'c', 1: 'b', 2: 'a'}) eq_(f.cells, ('a', 'b', 'c')) # ordered f = Factor(a, labels=((0, 'c'), (1, 'b'), (2, 'a'))) eq_(f.cells, ('c', 'b', 'a')) eq_(f[:2].cells, ('c', 'b')) f[f == 'b'] = 'c' eq_(f.cells, ('c', 'a')) # label length lens = [2, 5, 32, 2, 32, 524] f = Factor(['a' * l for l in lens]) assert_array_equal(f.label_length(), lens) # equality f = Factor('aabbcc') assert_equal(f == Factor('aabbcc'), True) assert_equal(f == Factor('bbccaa'), False) assert_equal(f == Factor('aabxxx'), (True, True, True, False, False, False)) assert_equal(f == Var(np.ones(6)), False)
def test_factor(): "Test basic Factor functionality" # removing a cell f = Factor('aabbcc') eq_(f.cells, ('a', 'b', 'c')) f[f == 'c'] = 'a' eq_(f.cells, ('a', 'b')) # cell order a = np.tile(np.arange(3), 3) # alphabetical f = Factor(a, labels={0: 'c', 1: 'b', 2: 'a'}) eq_(f.cells, ('a', 'b', 'c')) # ordered f = Factor(a, labels=((0, 'c'), (1, 'b'), (2, 'a'))) eq_(f.cells, ('c', 'b', 'a')) eq_(f[:2].cells, ('c', 'b')) f[f == 'b'] = 'c' eq_(f.cells, ('c', 'a')) # label length lens = [2, 5, 32, 2, 32, 524] f = Factor(['a' * l for l in lens]) assert_array_equal(f.label_length(), lens)
def test_factor(): "Test basic Factor functionality" # initializing assert_array_equal(Factor('ab'), ['a', 'b']) assert_array_equal(Factor('ab', repeat=2), ['a', 'a', 'b', 'b']) assert_array_equal(Factor('ab', repeat=np.array([2, 1])), ['a', 'a', 'b']) empty_factor = Factor([]) eq_(len(empty_factor), 0) assert_dataobj_equal(Factor(np.empty(0)), empty_factor) # from Factor f = Factor('aabbcc') assert_array_equal(Factor(f), f) assert_array_equal(Factor(f, labels={'a': 'b'}), Factor('bbbbcc')) # removing a cell f = Factor('aabbcc') eq_(f.cells, ('a', 'b', 'c')) eq_(f.n_cells, 3) f[f == 'c'] = 'a' eq_(f.cells, ('a', 'b')) eq_(f.n_cells, 2) # cell order a = np.tile(np.arange(3), 3) # alphabetical f = Factor(a, labels={0: 'c', 1: 'b', 2: 'a'}) eq_(f.cells, ('a', 'b', 'c')) # ordered f = Factor(a, labels=((0, 'c'), (1, 'b'), (2, 'a'))) eq_(f.cells, ('c', 'b', 'a')) eq_(f[:2].cells, ('c', 'b')) f[f == 'b'] = 'c' eq_(f.cells, ('c', 'a')) # label length lens = [2, 5, 32, 2, 32, 524] f = Factor(['a' * l for l in lens], 'f') fl = f.label_length() assert_array_equal(fl, lens) eq_(fl.info['longname'], 'f.label_length()') lens2 = [3, 5, 32, 2, 32, 523] f2 = Factor(['b' * l for l in lens2], 'f2') assert_array_equal(fl - f2.label_length(), [a - b for a, b in zip(lens, lens2)]) # equality f = Factor('aabbcc') assert_equal(f == Factor('aabbcc'), True) assert_equal(f == Factor('bbccaa'), False) assert_equal(f == Factor('aabxxx'), (True, True, True, False, False, False)) assert_equal(f == Var(np.ones(6)), False) # Factor.as_var() assert_array_equal(f.as_var(dict(list(zip('abc', list(range(3)))))), [0, 0, 1, 1, 2, 2]) assert_array_equal(f.as_var({'a': 1}, 2), [1, 1, 2, 2, 2, 2]) assert_raises(KeyError, f.as_var, {'a': 1}) # Factor.floodfill() f = Factor([' ', ' ', '1', '2', ' ', ' ', '3', ' ', ' ', '2', ' ', ' ', '1']) regions = [ 1, 1, 1, 2, 2, 2, 3, 3, 3, 2, 2, 1, 1] regions2 = [ 1, 1, 1, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1] regions3 = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2] target3 = ['1', '1', '1', '2', '2', '2', '3', '3', '2', '2', '2', '2', '1'] target_p = [' ', ' ', '1', '2', '2', '2', '3', '3', '3', '2', '2', '2', '1'] assert_array_equal(f.floodfill(regions, ' '), Var(regions).as_factor()) assert_array_equal(f.floodfill(regions2, ' '), Var(regions2).as_factor()) assert_array_equal(f.floodfill(regions3, ' '), target3) assert_array_equal(f.floodfill('previous', ' '), target_p) f = Factor(['', '', 'a', '', 'e', 'r', '']) assert_array_equal(f.floodfill([1, 1, 1, 11, 11, 11, 11]), Factor('aaaeerr'))
def test_factor(): "Test basic Factor functionality" # initializing assert_array_equal(Factor('ab'), ['a', 'b']) assert_array_equal(Factor('ab', repeat=2), ['a', 'a', 'b', 'b']) assert_array_equal(Factor('ab', repeat=np.array([2, 1])), ['a', 'a', 'b']) empty_factor = Factor([]) eq_(len(empty_factor), 0) assert_dataobj_equal(Factor(np.empty(0)), empty_factor) # from Factor f = Factor('aabbcc') assert_array_equal(Factor(f), f) assert_array_equal(Factor(f, labels={'a': 'b'}), Factor('bbbbcc')) # removing a cell f = Factor('aabbcc') eq_(f.cells, ('a', 'b', 'c')) eq_(f.n_cells, 3) f[f == 'c'] = 'a' eq_(f.cells, ('a', 'b')) eq_(f.n_cells, 2) # cell order a = np.tile(np.arange(3), 3) # alphabetical f = Factor(a, labels={0: 'c', 1: 'b', 2: 'a'}) eq_(f.cells, ('a', 'b', 'c')) # ordered f = Factor(a, labels=((0, 'c'), (1, 'b'), (2, 'a'))) eq_(f.cells, ('c', 'b', 'a')) eq_(f[:2].cells, ('c', 'b')) f[f == 'b'] = 'c' eq_(f.cells, ('c', 'a')) # label length lens = [2, 5, 32, 2, 32, 524] f = Factor(['a' * l for l in lens], 'f') fl = f.label_length() assert_array_equal(fl, lens) eq_(fl.info['longname'], 'f.label_length()') lens2 = [3, 5, 32, 2, 32, 523] f2 = Factor(['b' * l for l in lens2], 'f2') assert_array_equal(fl - f2.label_length(), [a - b for a, b in zip(lens, lens2)]) # equality f = Factor('aabbcc') assert_equal(f == Factor('aabbcc'), True) assert_equal(f == Factor('bbccaa'), False) assert_equal(f == Factor('aabxxx'), (True, True, True, False, False, False)) assert_equal(f == Var(np.ones(6)), False) # Factor.as_var() assert_array_equal(f.as_var(dict(zip('abc', range(3)))), [0, 0, 1, 1, 2, 2]) assert_array_equal(f.as_var({'a': 1}, 2), [1, 1, 2, 2, 2, 2]) assert_raises(KeyError, f.as_var, {'a': 1}) # Factor.floodfill() f = Factor([' ', ' ', '1', '2', ' ', ' ', '3', ' ', ' ', '2', ' ', ' ', '1']) regions = [ 1, 1, 1, 2, 2, 2, 3, 3, 3, 2, 2, 1, 1] regions2 = [ 1, 1, 1, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1] regions3 = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2] target3 = ['1', '1', '1', '2', '2', '2', '3', '3', '2', '2', '2', '2', '1'] target_p = [' ', ' ', '1', '2', '2', '2', '3', '3', '3', '2', '2', '2', '1'] assert_array_equal(f.floodfill(regions, ' '), Var(regions).as_factor()) assert_array_equal(f.floodfill(regions2, ' '), Var(regions2).as_factor()) assert_array_equal(f.floodfill(regions3, ' '), target3) assert_array_equal(f.floodfill('previous', ' '), target_p) f = Factor(['', '', 'a', '', 'e', 'r', '']) assert_array_equal(f.floodfill([1, 1, 1, 11, 11, 11, 11]), Factor('aaaeerr'))