Merge branch 'table-getitem' into development
This commit is contained in:
commit
aad123f41b
|
@ -33,6 +33,10 @@ class Table:
|
|||
"""Brief overview."""
|
||||
return '\n'.join(['# '+c for c in self.comments])+'\n'+self.data.__repr__()
|
||||
|
||||
def __getitem__(self,item):
|
||||
"""Return slice according to item."""
|
||||
return self.__class__(data=self.data[item],shapes=self.shapes,comments=self.comments)
|
||||
|
||||
def __len__(self):
|
||||
"""Number of rows."""
|
||||
return len(self.data)
|
||||
|
|
|
@ -8,7 +8,7 @@ from damask import Table
|
|||
def default():
|
||||
"""Simple Table."""
|
||||
x = np.ones((5,13),dtype=float)
|
||||
return Table(x,{'F':(3,3),'v':(3,),'s':(1,)},['test data','contains only ones'])
|
||||
return Table(x,{'F':(3,3),'v':(3,),'s':(1,)},['test data','contains five rows of only ones'])
|
||||
|
||||
@pytest.fixture
|
||||
def ref_path(ref_path_base):
|
||||
|
@ -20,8 +20,9 @@ class TestTable:
|
|||
def test_repr(self,default):
|
||||
print(default)
|
||||
|
||||
def test_len(self):
|
||||
len(Table(np.random.rand(7,3),{'X':3})) == 7
|
||||
@pytest.mark.parametrize('N',[10,40])
|
||||
def test_len(self,N):
|
||||
len(Table(np.random.rand(N,3),{'X':3})) == N
|
||||
|
||||
def test_get_scalar(self,default):
|
||||
d = default.get('s')
|
||||
|
@ -39,6 +40,10 @@ class TestTable:
|
|||
d = default.get('5_F')
|
||||
assert np.allclose(d,1.0) and d.shape[1:] == (1,)
|
||||
|
||||
@pytest.mark.parametrize('N',[10,40])
|
||||
def test_getitem(self,N):
|
||||
assert len(Table(np.random.rand(N,1),{'X':1})[:N//2]) == N//2
|
||||
|
||||
@pytest.mark.parametrize('mode',['str','path'])
|
||||
def test_write_read(self,default,tmp_path,mode):
|
||||
default.save(tmp_path/'default.txt')
|
||||
|
|
Loading…
Reference in New Issue