This repository has been archived on 2024-07-04. You can view files and clone it, but cannot push or open issues or pull requests.
laydi/test/workflows/affy_workflowtest.py

82 lines
2.5 KiB
Python

import unittest
import sys
sys.path.append("../..")
from workflows.affy_workflow import PhenotypeDataset
class PhenotypeDatasetTest(unittest.TestCase):
def testEmptyData(self):
# we have a list of cel-files, but no categories
cel_data = """\
CEL
02-05-33
03-07-38
"""
dataset = PhenotypeDataset(cel_data)
self.assertEquals(['CEL', 'phenotypes'], dataset.get_dim_names())
self.assertEquals(['02-05-33', '03-07-38'], dataset.get_identifiers('CEL'))
self.assertEquals([], dataset.get_identifiers('phenotypes'))
def testFloatData(self):
cel_data = """\
CEL\tage
02-05-33\t8
03-07-38\t9
"""
dataset = PhenotypeDataset(cel_data)
self.assertEquals(['CEL', 'phenotypes'], dataset.get_dim_names())
self.assertEquals(['age'], dataset.get_identifiers('phenotypes'))
self.assertEquals([[8],
[9]], dataset.asarray().tolist())
def testCategoryData(self):
"""Categories expand to one numeric column for each category choice."""
cel_data = """\
CEL\tsick
02-05-33\tyes
03-07-38\tno
04-93-33\tyes
08-32-33\tmaybe
"""
dataset = PhenotypeDataset(cel_data)
self.assertEquals(['CEL', 'phenotypes'], dataset.get_dim_names())
self.assertEquals(['sick-yes', 'sick-no', 'sick-maybe'], dataset.get_identifiers('phenotypes'))
self.assertEquals([[1, 0, 0],
[0, 1, 0],
[1, 0, 0],
[0, 0, 1]], dataset.asarray().tolist())
def testMultipleCategoriesAndFloats(self):
cel_data = """\
CEL\tsex\tage\tinfected
02-05-33\tF\t8\tI
02-05-34\tF\t9\tN
02-05-35\tM\t8\tI
"""
dataset = PhenotypeDataset(cel_data)
self.assertEquals(['sex-F', 'sex-M', 'age', 'infected-I', 'infected-N'],
dataset.get_identifiers('phenotypes'))
self.assertEquals([[1, 0, 8, 1, 0],
[1, 0, 9, 0, 1],
[0, 1, 8, 1, 0]], dataset.asarray().tolist())
def testGetPhenotypeTable(self):
cel_data = """\
CEL\tsex\tage\tinfected
02-05-33\tF\t8\tI
02-05-34\tF\t9\tN
02-05-35\tM\t8\tI
"""
dataset = PhenotypeDataset(cel_data)
self.assertEquals([['CEL', 'sex', 'age', 'infected'],
['02-05-33', 'F', '8', 'I'],
['02-05-34', 'F', '9', 'N'],
['02-05-35', 'M', '8', 'I']], dataset.get_phenotype_table())
if __name__=='__main__':
unittest.main()