'Create a new column in an existing table using the item access syntax'

def test_set_new_col_existing_table(self, table_types):

    self._setup(table_types)
    t = table_types.Table([self.a])
    t['bb'] = self.b
    assert np.all((t['bb'] == self.b))
    assert (t.colnames == ['a', 'bb'])
    assert (t['bb'].meta == self.b.meta)
    assert (t['bb'].format == self.b.format)
    t['c'] = t['a']
    assert np.all((t['c'] == t['a']))
    assert (t.colnames == ['a', 'bb', 'c'])
    assert (t['c'].meta == t['a'].meta)
    assert (t['c'].format == t['a'].format)
    t['d'] = table_types.Column(np.arange(12).reshape(3, 2, 2))
    assert (t['d'].shape == (3, 2, 2))
    assert (t['d'][(0, 0, 1)] == 1)
    t['e'] = ['hello', 'the', 'world']
    assert np.all((t['e'] == np.array(['hello', 'the', 'world'])))
    t['e'] = ['world', 'hello', 'the']
    assert np.all((t['e'] == np.array(['world', 'hello', 'the'])))
    t['f'] = 10
    assert np.all((t['f'] == 10))
    t['g'] = (np.array([1, 2, 3]) * u.m)
    assert np.all((t['g'].data == np.array([1, 2, 3])))
    assert (t['g'].unit == u.m)
    t['g'] = (3 * u.m)
    assert np.all((t['g'].data == 3))
    assert (t['g'].unit == u.m)
