import unittest import sys sys.path.append('../..') from system.dataset import * from scipy import rand,shape, array class DatasetTest(unittest.TestCase): def setUp(self): dim_0_ids = ('sample_a','sample_b') dim_1_ids = ('gene_a','gene_b','gene_c') dim_labels = ('samples','genes') identifiers= [(dim_labels[0],dim_0_ids),(dim_labels[1],dim_1_ids)] self.array = rand(2,3) self.testdata = Dataset(self.array,identifiers) def testCreation(self): data = self.testdata assert data._array == self.array assert 'sample_a' in data['samples'].keys() assert data['samples']['sample_b']==1 assert 'gene_c' in data['genes'].keys() assert data['genes']['gene_c']==2 def testLookupIndicesOfIdentifiers(self): data = self.testdata # base case self.assertEquals([0, 1, 2], data.get_indices('genes', ['gene_a', 'gene_b', 'gene_c'])) # "advanced" lookup self.assertEquals([2, 0], data.get_indices('genes', ['gene_c', 'gene_a'])) # other dimension self.assertEquals([0, 1], data.get_indices('samples', ['sample_a', 'sample_b'])) def testLookupIdentifiersOfIndices(self): data = self.testdata # base case self.assertEquals(['gene_a', 'gene_b', 'gene_c'], data.get_identifiers('genes', [0, 1, 2])) # "advanced" lookup self.assertEquals(['gene_c', 'gene_a'], data.get_identifiers('genes', [2, 0])) # handle empty matrix of indices self.assertEquals([], data.get_identifiers('samples', array([]))) # other dimension self.assertEquals(['sample_a', 'sample_b'], data.get_identifiers('samples', [0, 1])) #def testExtraction(self): # ids = ['gene_a','gene_b'] # dim_name = 'genes' # subset = self.testdata.extract_data(ids,dim_name) # assert shape(subset._data) == (2,2) # assert subset.ids[dim_name].keys() == ids # assert subset.ids[dim_name].values() == [0,1] if __name__ == '__main__': unittest.main()