#!/usr/bin/python from PIPRes.basic import * import unittest, re, copy from cStringIO import StringIO from PIPRes.util.io import expandPath _LOG = cipresGetLogger('test.basic') class TestBasic(unittest.TestCase): def testReadRaxmlTree(self): dataFile = expandPath('$PIPRES_ROOT/test_cipres/files/raxml-intree') if os.path.exists(dataFile): t = readTreeFromPhylipFile(dataFile) _LOG.warn(str(t)) else: _LOG.warn('%s not found!, test skipped.' % dataFile) #class TestBasic(unittest.TestCase): class A: def implTwelveTaxonTest(self, dataFile, treatStringAsPath = True): content = getContentFromNexus(dataFile, treatStringAsPath = treatStringAsPath) triple = content[0] matrix = triple.matrixList[0] expectedMatrix = CipresIDL_api1.DataMatrix('ACGT?N', 4L, 432L, [[0], [1], [2], [3], [-1, 0, 1, 2, 3], [0, 1, 2, 3]], [ [1, 3, 2, 0, 1, 3, 1, 1, 3, 2, 0, 2, 2, 0, 2, 0, 0, 2, 3, 1, 3, 2, 1, 1, 2, 3, 3, 0, 1, 3, 2, 1, 1, 1, 3, 2, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 2, 0, 0, 1, 2, 3, 2, 2, 0, 3, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 2, 2, 3, 1, 3, 0, 1, 1, 1, 3, 3, 2, 2, 0, 1, 1, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 3, 2, 0, 2, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 3, 1, 3, 2, 3, 1, 1, 0, 1, 3, 1, 1, 3, 2, 0, 3, 2, 1, 3, 2, 3, 3, 0, 3, 2, 2, 2, 1, 0, 0, 1, 1, 1, 3, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 3, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 0, 2, 3, 2, 1, 3, 1, 2, 2, 3, 2, 1, 1, 3, 3, 3, 0, 2, 3, 2, 0, 3, 2, 2, 1, 1, 3, 2, 2, 1, 3, 1, 0, 1, 1, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 1, 0, 1, 0, 1, 3, 2, 0, 2, 3, 2, 0, 2, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 1, 0, 0, 2, 1, 3, 2, 1, 0, 1, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 1, 3, 2, 2, 3, 1, 3, 2, 3, 2, 3, 2, 1, 3, 2, 2, 1, 1, 1, 0, 3, 1, 0, 1, 3, 3, 3, 2, 2, 1, 0, 0, 0, 2, 0, 0, 3, 3, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 2, 3, 2, 1, 0, 2, 2, 1, 3, 2, 1, 1, 3, 0, 3, 1, 0, 2, 0, 0, 0, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 3, 0, 0, 3, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 0, 1, 0, 0, 2, 3, 0, 3, 1, 0, 1], [1, 3, 2, 0, 1, 3, 2, 1, 3, 2, 0, 0, 2, 0, 2, 0, 0, 2, 2, 1, 1, 2, 1, 1, 2, 3, 1, 0, 1, 3, 2, 1, 1, 1, 3, 2, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 0, 2, 0, 1, 2, 3, 2, 2, 0, 0, 2, 0, 3, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 1, 2, 3, 1, 3, 0, 1, 1, 1, 0, 3, 2, 2, 0, 1, 1, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 3, 2, 0, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 1, 3, 2, 3, 1, 1, 0, 1, 3, 1, 1, 3, 2, 1, 1, 2, 1, 3, 2, 3, 3, 0, 3, 2, 0, 2, 1, 0, 0, 3, 2, 1, 3, 0, 0, 2, 2, 3, 1, 0, 0, 2, 2, 1, 1, 1, 0, 3, 2, 2, 1, 0, 0, 0, 0, 0, 2, 2, 3, 2, 1, 3, 2, 0, 0, 1, 2, 1, 1, 3, 3, 3, 0, 2, 3, 2, 0, 1, 2, 2, 1, 0, 3, 2, 2, 1, 3, 1, 0, 3, 1, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 0, 0, 2, 1, 3, 2, 0, 2, 3, 2, 0, 2, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 1, 0, 0, 0, 3, 3, 2, 1, 0, 1, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 3, 3, 3, 1, 0, 2, 2, 1, 3, 1, 3, 3, 2, 2, 2, 1, 0, 0, 3, 2, 3, 2, 1, 3, 2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 1, 3, 2, 2, 1, 1, 1, 0, 1, 1, 0, 1, 3, 3, 3, 2, 2, 1, 0, 0, 0, 2, 0, 0, 3, 3, 1, 0, 1, 1, 1, 1, 2, 1, 0, 2, 2, 3, 3, 1, 0, 2, 2, 1, 3, 2, 1, 1, 3, 0, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 3, 0, 1, 3, 2, 1, 1, 3, 3, 2, 2, 1, 3, 1, 0, 1, 0, 0, 2, 3, 0, 1, 1, 0, 1], [1, 3, 2, 0, 1, 3, 1, 1, 3, 2, 0, 3, 2, 0, 2, 0, 0, 2, 0, 0, 3, 2, 1, 1, 2, 3, 3, 3, 2, 3, 2, 1, 1, 1, 3, 2, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 2, 0, 0, 3, 2, 3, 2, 2, 0, 0, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 0, 3, 2, 2, 0, 1, 1, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 3, 2, 0, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 1, 3, 2, 3, 1, 1, 3, 1, 3, 1, 1, 3, 3, 1, 3, 2, 1, 3, 2, 3, 3, 0, 3, 2, 2, 2, 1, 0, 0, 1, 1, 1, 3, 0, 0, 0, 2, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 1, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 2, 0, 2, 3, 2, 1, 1, 3, 3, 3, 0, 2, 1, 2, 0, 2, 2, 2, 1, 1, 3, 2, 0, 0, 3, 1, 0, 1, 1, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 0, 0, 2, 1, 3, 2, 0, 2, 3, 2, 0, 2, 1, 3, 2, 1, 0, 3, 3, 2, 3, 2, 0, 1, 0, 0, 2, 1, 3, 2, 1, 0, 1, 2, 3, 2, 2, 0, 1, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 1, 3, 2, 2, 3, 2, 2, 3, 3, 2, 3, 1, 1, 3, 2, 2, 1, 3, 1, 0, 1, 1, 0, 1, 3, 3, 3, 2, 2, 1, 0, 0, 2, 2, 0, 3, 3, 3, 1, 0, 1, 1, 1, 1, 0, 1, 0, 2, 2, 3, 2, 1, 0, 2, 2, 1, 3, 2, 1, 1, 3, 0, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 3, 0, 1, 3, 2, 1, 1, 1, 3, 2, 2, 1, 3, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 1], [1, 3, 2, 3, 1, 1, 2, 2, 3, 2, 0, 2, 2, 0, 2, 0, 0, 2, 3, 1, 3, 2, 1, 2, 2, 3, 1, 0, 1, 3, 2, 1, 1, 1, 3, 2, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 2, 0, 0, 3, 2, 3, 2, 2, 0, 0, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 0, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 0, 3, 2, 2, 0, 1, 1, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 1, 2, 0, 2, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 1, 3, 2, 3, 1, 1, 0, 1, 3, 2, 1, 3, 3, 1, 3, 2, 1, 3, 2, 3, 3, 0, 3, 2, 2, 2, 1, 0, 0, 1, 1, 1, 3, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 3, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 2, 2, 1, 3, 2, 1, 1, 3, 3, 1, 0, 2, 3, 2, 0, 2, 2, 2, 3, 1, 3, 2, 0, 2, 3, 1, 0, 1, 1, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 0, 2, 2, 1, 0, 1, 1, 3, 3, 1, 2, 1, 3, 0, 0, 2, 1, 3, 2, 0, 2, 3, 2, 0, 0, 1, 3, 2, 1, 0, 3, 3, 2, 3, 2, 0, 1, 0, 0, 2, 1, 3, 2, 1, 0, 1, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 1, 3, 2, 2, 3, 3, 0, 3, 3, 2, 3, 2, 1, 3, 2, 3, 1, 3, 1, 0, 3, 1, 0, 1, 3, 3, 3, 2, 2, 1, 0, 0, 0, 2, 0, 0, 3, 3, 1, 0, 1, 3, 1, 1, 3, 1, 0, 2, 2, 3, 2, 1, 0, 2, 2, 1, 3, 2, 1, 1, 3, 0, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 1, 0, 0, 3, 2, 1, 1, 1, 3, 2, 2, 1, 3, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 1], [1, 3, 2, 3, 1, 1, 0, 2, 3, 2, 0, 2, 2, 0, 2, 0, 0, 2, 3, 1, 3, 2, 1, 2, 2, 3, 1, 0, 1, 3, 2, 1, 1, 1, 3, 2, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 2, 0, 0, 3, 2, 3, 2, 2, 0, 0, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 0, 3, 2, 2, 0, 1, 1, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 1, 2, 0, 2, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 1, 3, 2, 3, 1, 1, 3, 1, 3, 2, 1, 0, 0, 0, 3, 2, 1, 3, 2, 3, 3, 0, 3, 2, 0, 0, 1, 0, 0, 3, 1, 1, 3, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 3, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 2, 2, 1, 3, 2, 1, 1, 3, 3, 1, 0, 2, 3, 2, 0, 2, 2, 2, 3, 1, 3, 2, 0, 2, 3, 1, 0, 1, 1, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 0, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 0, 0, 2, 1, 3, 2, 0, 2, 3, 2, 0, 0, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 1, 0, 0, 2, 1, 3, 2, 1, 0, 1, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 1, 3, 2, 2, 3, 3, 0, 3, 3, 2, 3, 2, 1, 3, 2, 3, 1, 3, 1, 0, 3, 1, 0, 3, 3, 3, 3, 2, 2, 1, 0, 0, 0, 2, 0, 0, 3, 3, 1, 0, 1, 3, 1, 1, 3, 1, 0, 2, 2, 3, 2, 1, 0, 2, 2, 1, 3, 2, 1, 1, 3, 0, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 1, 0, 0, 3, 2, 1, 1, 1, 3, 2, 2, 1, 3, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 1], [1, 3, 2, 0, 1, 3, 2, 1, 3, 2, 0, 2, 2, 0, 2, 0, 0, 2, 2, 1, 3, 2, 1, 1, 2, 3, 1, 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 2, 0, 0, 0, 2, 3, 2, 2, 0, 3, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 1, 3, 2, 2, 0, 1, 3, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 3, 2, 0, 2, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 3, 3, 2, 3, 1, 1, 0, 1, 3, 2, 1, 3, 2, 0, 3, 2, 1, 3, 2, 3, 3, 0, 3, 2, 0, 0, 1, 0, 0, 1, 1, 1, 3, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 0, 2, 0, 3, 3, 1, 1, 3, 3, 3, 0, 2, 3, 0, 0, 3, 2, 2, 1, 0, 3, 2, 0, 0, 2, 1, 0, 3, 1, 3, 1, 2, 0, 3, 2, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 2, 1, 2, 1, 3, 2, 0, 2, 3, 2, 0, 2, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 3, 0, 0, 2, 1, 3, 2, 1, 0, 3, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 0, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 1, 3, 0, 2, 3, 2, 2, 3, 3, 2, 3, 2, 1, 3, 2, 2, 1, 3, 1, 2, 1, 0, 0, 3, 3, 3, 3, 2, 2, 1, 0, 0, 2, 2, 0, 0, 3, 3, 1, 0, 1, 1, 1, 1, 2, 2, 3, 2, 1, 3, 2, 1, 0, 2, 2, 1, 3, 2, 0, 1, 3, 3, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 1, 0, 0, 3, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 0, 1, 0, 2, 0, 3, 0, 3, 1, 0, 3], [1, 3, 2, 3, 1, 1, 2, 0, 3, 2, 1, 2, 2, 3, 1, 0, 0, 1, 2, 1, 3, 2, 1, 1, 2, 3, 1, 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 2, 0, 0, 0, 2, 3, 2, 2, 0, 3, 1, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 1, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 2, 1, 3, 2, 2, 0, 1, 3, 1, 0, 2, 0, 2, 2, 3, 2, 1, 3, 0, 3, 2, 0, 2, 3, 1, 1, 3, 3, 3, 2, 2, 0, 2, 0, 1, 3, 3, 2, 3, 1, 1, 0, 1, 3, 2, 1, 3, 2, 0, 3, 2, 1, 3, 2, 3, 3, 0, 3, 2, 0, 0, 1, 0, 0, 1, 1, 1, 3, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 0, 2, 0, 3, 3, 1, 1, 3, 3, 3, 0, 2, 3, 0, 0, 3, 2, 2, 1, 0, 3, 2, 0, 0, 2, 1, 0, 3, 1, 3, 1, 2, 0, 3, 2, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 2, 1, 2, 1, 3, 2, 0, 2, 3, 2, 0, 2, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 3, 0, 0, 2, 1, 3, 2, 1, 0, 3, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 0, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 1, 3, 0, 2, 3, 2, 2, 3, 3, 2, 3, 2, 1, 3, 2, 2, 1, 3, 1, 2, 1, 0, 0, 3, 3, 3, 3, 2, 2, 1, 0, 0, 2, 2, 0, 0, 3, 3, 1, 0, 1, 1, 1, 1, 2, 2, 3, 2, 1, 3, 2, 1, 0, 2, 2, 1, 3, 2, 0, 1, 3, 3, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 1, 0, 0, 3, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 0, 1, 0, 2, 0, 3, 0, 3, 1, 0, 3], [1, 3, 2, 0, 1, 3, 2, 1, 3, 2, 0, 2, 2, 0, 2, 0, 0, 2, 2, 1, 3, 2, 1, 1, 2, 3, 1, 0, 1, 1, 2, 2, 1, 3, 3, 1, 3, 2, 2, 2, 2, 1, 0, 0, 2, 2, 3, 2, 0, 0, 0, 2, 3, 2, 2, 0, 3, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 1, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 1, 3, 2, 2, 0, 1, 3, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 3, 2, 0, 2, 1, 0, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 3, 3, 2, 3, 1, 1, 0, 0, 3, 2, 1, 3, 2, 0, 3, 2, 1, 3, 2, 3, 3, 0, 3, 2, 0, 0, 1, 0, 0, 1, 1, 1, 3, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 0, 2, 0, 1, 3, 1, 1, 3, 3, 3, 0, 2, 3, 0, 0, 1, 2, 2, 1, 0, 3, 2, 0, 0, 2, 1, 0, 3, 1, 3, 1, 2, 0, 3, 2, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 1, 0, 2, 1, 3, 2, 0, 2, 3, 2, 0, 2, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 3, 0, 0, 2, 1, 3, 2, 1, 0, 1, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 1, 3, 2, 2, 3, 2, 2, 3, 3, 2, 3, 2, 1, 3, 2, 2, 1, 3, 1, 2, 1, 1, 0, 1, 1, 0, 3, 2, 2, 1, 0, 0, 3, 2, 0, 0, 3, 3, 1, 0, 1, 1, 1, 1, 2, 2, 3, 2, 1, 3, 2, 1, 0, 2, 2, 1, 3, 2, 0, 1, 3, 3, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 3, 2, 1, 1, 0, 0, 3, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 0, 1, 0, 0, 0, 3, 0, 3, 1, 0, 1], [1, 3, 2, 3, 1, 3, 2, 1, 3, 2, 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, 2, 1, 1, 2, 3, 1, 1, 3, 1, 2, 2, 1, 1, 3, 2, 3, 2, 2, 2, 2, 1, 0, 0, 0, 2, 3, 2, 0, 0, 3, 2, 3, 2, 2, 0, 1, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 1, 3, 2, 2, 0, 1, 3, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 1, 2, 0, 2, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 1, 3, 2, 3, 1, 1, 0, 0, 3, 2, 1, 1, 2, 0, 3, 2, 1, 1, 2, 3, 1, 0, 3, 2, 2, 2, 1, 0, 0, 3, 1, 1, 1, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 1, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 1, 1, 0, 2, 3, 1, 1, 3, 3, 1, 0, 2, 3, 2, 0, 1, 2, 2, 1, 1, 3, 2, 0, 0, 0, 1, 0, 3, 1, 3, 1, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 0, 0, 2, 1, 3, 2, 0, 2, 1, 2, 0, 2, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 1, 1, 0, 2, 1, 3, 2, 1, 0, 1, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 1, 2, 3, 2, 0, 3, 0, 2, 3, 2, 2, 3, 3, 2, 3, 3, 1, 3, 2, 2, 1, 3, 1, 2, 1, 1, 2, 1, 1, 3, 3, 2, 2, 1, 1, 0, 3, 2, 0, 1, 3, 3, 1, 0, 0, 1, 1, 1, 2, 0, 0, 3, 2, 3, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 3, 3, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 3, 2, 3, 3, 2, 1, 3, 0, 0, 3, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 0, 1, 0, 0, 2, 3, 0, 1, 1, 0, 1], [3, 3, 2, 0, 1, 2, 2, 1, 2, 2, 0, 2, 2, 0, 2, 0, 0, 2, 3, 1, 3, 2, 1, 1, 2, 3, 1, 0, 1, 1, 3, 1, 1, 1, 3, 2, 3, 2, 2, 2, 2, 1, 0, 0, 0, 2, 3, 2, 0, 0, 2, 2, 3, 2, 2, 0, 3, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 0, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 1, 3, 2, 2, 0, 1, 3, 1, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 3, 2, 0, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 1, 3, 2, 3, 1, 1, 3, 1, 3, 1, 1, 3, 0, 0, 3, 2, 1, 3, 0, 3, 3, 0, 3, 2, 0, 2, 1, 0, 0, 1, 1, 1, 1, 0, 0, 2, 2, 3, 1, 0, 0, 2, 2, 1, 1, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 1, 3, 2, 0, 0, 3, 3, 1, 1, 3, 3, 3, 0, 2, 3, 2, 0, 3, 2, 2, 1, 1, 3, 2, 0, 0, 2, 0, 0, 3, 1, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 0, 0, 2, 1, 3, 1, 0, 2, 3, 2, 0, 2, 1, 3, 2, 1, 0, 1, 3, 2, 3, 2, 0, 1, 1, 0, 2, 1, 3, 2, 1, 0, 3, 2, 3, 2, 2, 0, 3, 1, 1, 1, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 0, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 3, 2, 3, 2, 1, 3, 2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 1, 3, 2, 2, 1, 1, 1, 2, 1, 1, 0, 1, 3, 3, 3, 2, 2, 1, 0, 0, 2, 2, 0, 0, 3, 3, 1, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 3, 2, 1, 0, 2, 2, 2, 3, 2, 1, 1, 3, 3, 3, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 0, 2, 1, 3, 2, 2, 3, 2, 3, 2, 2, 1, 1, 0, 0, 3, 2, 1, 1, 1, 3, 1, 2, 1, 1, 1, 0, 1, 0, 0, 0, 3, 0, 3, 1, 0, 1], [1, 3, 0, 0, 1, 3, 2, 0, 3, 2, 1, 3, 2, 0, 2, 0, 0, 2, 2, 1, 3, 2, 1, 3, 2, 3, 3, 0, 0, 3, 2, 1, 1, 1, 3, 2, 3, 2, 2, 2, 2, 0, 0, 0, 2, 2, 3, 2, 0, 0, 1, 1, 1, 3, 2, 0, 3, 2, 0, 3, 2, 3, 3, 2, 2, 3, 2, 2, 1, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 3, 3, 2, 2, 0, 1, 1, 1, 0, 2, 0, 2, 2, 3, 0, 1, 3, 3, 3, 2, 0, 3, 0, 2, 1, 3, 3, 3, 2, 2, 2, 2, 0, 1, 1, 3, 2, 3, 1, 1, 3, 1, 3, 2, 1, 1, 3, 1, 3, 2, 1, 3, 0, 3, 1, 0, 3, 2, 2, 2, 3, 0, 0, 1, 1, 1, 3, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 3, 2, 2, 1, 0, 0, 2, 0, 0, 2, 2, 3, 2, 0, 3, 0, 0, 0, 1, 2, 1, 1, 3, 3, 1, 0, 0, 3, 2, 0, 3, 2, 2, 1, 1, 3, 2, 0, 0, 0, 1, 0, 1, 3, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 3, 1, 0, 3, 1, 3, 2, 0, 2, 3, 2, 0, 0, 1, 3, 1, 1, 0, 1, 3, 2, 3, 2, 0, 1, 0, 0, 2, 1, 3, 2, 1, 0, 3, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 2, 2, 2, 1, 0, 0, 3, 0, 3, 2, 0, 3, 3, 2, 3, 2, 0, 3, 3, 2, 3, 2, 3, 3, 2, 2, 2, 1, 1, 0, 1, 1, 0, 1, 1, 3, 2, 2, 2, 1, 0, 0, 2, 2, 0, 0, 3, 3, 1, 0, 1, 1, 1, 1, 1, 3, 2, 3, 2, 1, 0, 1, 0, 2, 2, 1, 3, 2, 1, 1, 3, 3, 1, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 0, 2, 3, 2, 2, 1, 1, 0, 2, 3, 2, 1, 1, 1, 3, 2, 2, 1, 3, 1, 0, 1, 0, 0, 2, 3, 0, 1, 1, 0, 1], [1, 3, 2, 0, 1, 3, 2, 0, 3, 2, 1, 3, 2, 0, 2, 0, 0, 2, 3, 1, 3, 2, 1, 3, 2, 3, 1, 3, 1, 3, 3, 2, 1, 1, 3, 2, 3, 2, 2, 2, 1, 0, 0, 0, 2, 2, 3, 2, 0, 0, 1, 1, 1, 1, 2, 0, 3, 2, 0, 0, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 0, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 0, 2, 2, 1, 3, 2, 1, 3, 2, 2, 3, 3, 2, 3, 1, 3, 0, 1, 1, 1, 3, 3, 2, 2, 0, 1, 1, 1, 0, 2, 1, 2, 2, 3, 0, 1, 3, 3, 3, 2, 0, 3, 0, 2, 1, 3, 3, 3, 2, 2, 0, 2, 0, 1, 1, 3, 0, 3, 1, 1, 3, 1, 3, 2, 1, 1, 3, 1, 3, 2, 1, 3, 0, 3, 1, 0, 3, 2, 2, 2, 3, 0, 0, 3, 1, 1, 1, 0, 0, 2, 2, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 3, 2, 2, 1, 0, 0, 0, 0, 0, 2, 2, 3, 2, 0, 3, 0, 0, 1, 3, 2, 1, 1, 3, 3, 3, 0, 0, 1, 2, 0, 2, 2, 2, 1, 1, 3, 2, 0, 0, 0, 0, 0, 1, 1, 3, 2, 2, 0, 1, 0, 0, 1, 1, 3, 1, 0, 0, 2, 2, 2, 1, 0, 1, 1, 3, 3, 3, 2, 1, 1, 0, 2, 1, 1, 3, 1, 0, 2, 3, 2, 0, 2, 1, 3, 1, 1, 0, 1, 3, 2, 3, 2, 0, 1, 0, 0, 2, 1, 3, 2, 1, 0, 3, 2, 3, 2, 2, 0, 3, 1, 1, 3, 2, 0, 2, 0, 0, 1, 3, 3, 1, 0, 2, 2, 1, 3, 1, 1, 3, 0, 2, 2, 1, 0, 0, 3, 2, 1, 2, 0, 3, 1, 2, 3, 2, 0, 3, 3, 2, 3, 2, 1, 3, 2, 2, 2, 1, 1, 0, 1, 1, 0, 1, 1, 3, 2, 2, 2, 1, 0, 0, 2, 2, 0, 3, 3, 3, 1, 0, 1, 1, 1, 1, 3, 2, 1, 3, 2, 1, 0, 1, 0, 2, 2, 1, 3, 2, 1, 1, 3, 3, 1, 1, 0, 2, 0, 0, 2, 2, 3, 2, 2, 3, 2, 2, 1, 3, 2, 2, 0, 2, 3, 2, 2, 1, 1, 0, 1, 3, 2, 1, 1, 1, 3, 2, 2, 1, 3, 1, 0, 1, 0, 0, 2, 3, 0, 1, 1, 0, 1] ], CipresIDL_api1.DNA_DATATYPE) self.assertEqual(triple.taxa, ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'u', 'v', 'x', 'y', 't']) self.assertEqual(matrix, expectedMatrix) def testGetContent(self): dataFile = expandPath('$PIPRES_ROOT/test/files/12Tx432C.nex') if os.path.exists(dataFile): self.implTwelveTaxonTest(dataFile, treatStringAsPath = True) else: _LOG.warn('%s not found!, test skipped.' % dataFile) def testGetContentFromString(self): data = '''#NEXUS begin taxa; dimensions NTax=12; taxlabels a b c d e f g u v x y t; end; begin data; dimensions ntax=12 nchar=432; format datatype=dna missing=?; matrix a ctgactcctgaggagaagtctgccgttactgccctgtggggcaaggtgaacgtggatgaagttggtggtgag gccctgggcaggctgctggtggtctacccttggacccagaggttctttgagtcctttggggatctgtccact cctgatgctgttatgggcaaccctaaggtgaaggctcatggcaagaaagtgctcggtgcctttagtgatggc ctggctcacctggacaacctcaagggcacctttgccacactgagtgagctgcactgtgacaagctgcacgtg gatcctgagaacttcaggctcctgggcaacgtgctggtctgtgtgctggcccatcactttggcaaagaattc accccaccagtgcaggctgcctatcagaaagtggtggctggtgtggctaatgccctggcccacaagtatcac b ctgactgctgaagagaaggccgccgtcactgccctgtggggcaaggtagacgtggaagatgttggtggtgag gccctgggcaggctgctggtcgtctacccatggacccagaggttctttgactcctttggggacctgtccact cctgccgctgttatgagcaatgctaaggtcaaggcccatggcaaaaaggtgctgaacgcctttagtgacggc atggctcatctggacaacctcaagggcacctttgctaagctgagtgagctgcactgtgacaaattgcacgtg gatcctgagaatttcaggctcttgggcaatgtgctggtgtgtgtgctggcccaccactttggcaaagaattc accccgcaggttcaggctgcctatcagaaggtggtggctggtgtggctactgccttggctcacaagtaccac c ctgactcctgatgagaagaatgccgtttgtgccctgtggggcaaggtgaatgtggaagaagttggtggtgag gccctgggcaggctgctggttgtctacccatggacccagaggttctttgactcctttggggacctgtcctct ccttctgctgttatgggcaaccctaaagtgaaggcccacggcaagaaggtgctgagtgcctttagcgagggc ctgaatcacctggacaacctcaagggcacctttgctaagctgagtgagctgcattgtgacaagctgcacgtg gaccctgagaacttcaggctcctgggcaacgtgctggtggttgtcctggctcaccactttggcaaggatttc accccacaggtgcaggctgcctatcagaaggtggtggctggtgtggctactgccctggctcacaaataccac d ctgtccggtgaggagaagtctgcggtcactgccctgtggggcaaggtgaatgtggaagaagttggtggtgag accctgggcaggctgctggttgtctacccatggacccagaggttcttcgagtcctttggggacctgtccact gcttctgctgttatgggcaaccctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtgagggt ctgagtcacctggacaacctcaaaggcaccttcgctaagctgagtgaactgcattgtgacaagctgcacgtg gatcctgagaacttcaggctcctgggcaacgtgctggttattgtgctgtctcatcactttggcaaagaattc actcctcaggtgcaggctgcctatcagaaggtggtggctggtgtggccaatgccctggctcacaaataccac e ctgtccagtgaggagaagtctgcggtcactgccctgtggggcaaggtgaatgtggaagaagttggtggtgag gccctgggcaggctgctggttgtctacccatggacccagaggttcttcgagtcctttggggacctgtcctct gcaaatgctgttatgaacaatcctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtgagggt ctgagtcacctggacaacctcaaaggcacctttgctaagctgagtgaactgcactgtgacaagctgcacgtg gatcctgagaacttcaggctcctgggcaacgtgctggttattgtgctgtctcatcattttggcaaagaattc actcctcaggtgcaggctgcctatcagaaggtggtggctggtgtggccaatgccctggctcacaaataccac f ctgactgctgaggagaaggctgccgtcaccgccttttggggcaaggtgaaagtggatgaagttggtggtgag gccctgggcaggctgctggttgtctacccctggactcagaggttctttgagtcctttggggacttgtccact gctgatgctgttatgaacaaccctaaggtgaaggcccatggcaagaaggtgctagattcctttagtaatggc atgaagcatctcgatgacctcaagggcacctttgctgcgctgagtgagctgcactgtgataagctgcatgtg gatcctgagaacttcaagctcctgggcaacgtgctagtggttgtgctggctcgcaattttggcaaggaattc accccggtgctgcaggctgactttcagaaggtggtggctggtgtggccaatgccctggcccacagatatcat g ctgtccgatgcggtcaacgctgccgtcaccgccttttggggcaaggtgaaagtggatcaagttggtggtgag gccctgggcaggccgctggttgtctaccgctggactcagaggtgctatgagtcctttggagacttgtccact gctgatgctgttatgaacaaccctaaggtgaaggcccatggcaagaaggtgctagattcctttagtaatggc atgaagcatctcgatgacctcaagggcacctttgctgcgctgagtgagctgcactgtgataagctgcatgtg gatcctgagaacttcaagctcctgggcaacgtgctagtggttgtgctggctcgcaattttggcaaggaattc accccggtgctgcaggctgactttcagaaggtggtggctggtgtggccaatgccctggcccacagatatcat u ctgactgctgaggagaaggctgccgtcaccggcttctggggcaaggtgaaagtggatgaagttggtgctgag gccctgggcaggctgctggttgtctacccctggactcagaggttctttgagcactttggggacttgtccaat gctgatgctgttatgaacaaccctaaggtgaaggcccatggcaagaaggtgctagactcctttagtaacggc atgaagcatctcgatgacctcaagggcacctttgctcagctgagtgagctgcactgtgataagctgcacgtg gatcctgagaacttcaggctcctgggcaacgtgctggtggttgtgctggctcgccaccatggcaatgaattc accccggtgctgcaggctgactttcagaaggtggtggctggtgttgccaatgccctggcccacaaatatcac v ctgtctgctgaggagaaggaggccgtcctcggcctgtggggcaaagtgaatgtggacgaagttggtggtgag gccctgggcaggctgctggttgtctacccctggactcagaggttcttcgagtcctttggggacctgtccaat gccgatgccgtcatgggcaatcccaaggtgaaggcccacggcaagaaggtgctccagtccttcagtgacggc ctgaaacatctcgacaacctcaagggcacctttgctaagctgagcgagctgcactgtgaccagctgcacgtg gatcctgagaacttcaggctcctgggcaacgtgatagtggttgttctggctcgccgccttggccatgacttc aacccgaatgtgcaggctgcttttcagaaggtggtggctggtgttgctaatgccctggcccacaagtaccac x ttgacggcggaggagaagtctgccgtcacctccctgtggggcaaagtgaaggtggatgaagttggtggtgaa gccctgggcaggctgctggttgtctacccctggactcagaggttctttgactcctttggggacctgtcctct cctaatgctattatgagcaaccccaaggtcaaggcccatggcaagaaggtgctgaattcctttagtgatggc ctgaagaatctggacaacctcaagggcacctttgctaagctcagtgagctgcactgtgaccagctgcatgtg gatcccgagaacttcaagctcctgggcaatgtgctggtgtgtgtgctggcccgccactttggcaaggaattc accccacagatgcagggtgcctttcagaaggtggtagctggtgtggccaatgccctcgcccacaaatatcac y ctaactgatgctgagaaggctgctgttaatgccctgtggggaaaggtgaaccctgatgatgttggtggcgag gccctgggcaggctgctggttgtctacccttggacccagaggtactttgatagctttggggacctgtcctct gcctctgctatcatgggtaaccctaaggtgaaggcccatggcaagaaggtgataaacgccttcaatgatggc ctgaaacacttggacaacctcaagggcacctttgctcatctgagtgaactccactgtgacaagctgcatgtg gatcctgagaacttcaggctcctgggcaatatgattgtgattgtgttgggccaccacctgggcaaggaattc accccctgtgcacaggctgccttccagaaggtggtggctggagtggccagtgccctggctcacaagtaccac t ctgactgatgctgagaagtctgctgtctcttgcctgtgggcaaaggtgaaccccgatgaagttggtggtgag gccctgggcaggctgctggttgtctacccttggacccagcggtactttgatagctttggagacctatcctct gcctctgctatcatgggtaatcccaaggtgaaggcccatggcaaaaaggtgataactgcctttaacgagggc ctgaaaaacctggacaacctcaagggcacctttgccagcctcagtgagctccactgtgacaagctgcatgtg gatcctgagaacttcaggctcctaggcaatgcgatcgtgattgtgctgggccaccacctgggcaaggatttc acccctgctgcacaggctgccttccagaaggtggtggctggagtggccactgccctggctcacaagtaccac ; end; begin trees; tree rep.1 = [&U] ((((a:.1,b:1):1,(t:3.2,g:1):2):1,(c:2,d:1):1):1,(((e:1,f:1):1,u:1):1,v:1.2,(x:0.2,y:1):1):1); end; begin trees; tree rep.1 = [&U] ((((c:.1,b:1):1,(t:3.2,g:1):2):1,(a:2,d:1):1):1,(((e:1,f:1):1,u:1):1,v:1.2,(x:0.2,y:1):1):1); end; ''' self.implTwelveTaxonTest(data, treatStringAsPath = False) def testAmbiguities(self): data = StringIO('''#NEXUS begin data; dimensions ntax = 4 nchar = 4; format datatype = dna; matrix t1 ACGT t2 BDHV t3 RYSW t4 NKM?; end;''') content = getContentFromNexus(data)[0] taxa, matrix = content.taxa, content.matrixList[0] expectedMatrix = CipresIDL_api1.DataMatrix('ACGT?NBDHVRYSWKM', 4L, 4L, [[0], [1], [2], [3], [-1, 0, 1, 2, 3], [0,1,2,3], [1,2,3], [0,2,3], [0,1,3], [0,1,2], [0,2], [1,3], [1,2], [0,3], [2,3], [0,1]], [ [0, 1, 2, 3 ], [6, 7, 8, 9], [10, 11, 12, 13], [5,14, 15, 4] ], CipresIDL_api1.DNA_DATATYPE) self.assertEqual(taxa, ['t1', 't2', 't3', 't4']) self.assertEqual(matrix, expectedMatrix) data = StringIO('''#NEXUS begin data; dimensions ntax = 4 nchar = 4; format datatype = dna; matrix t1 ACGT t2 {CGT}{AGT}{ACT}{ACG} t3 {AG}{CT}{CG}{TA} t4 {ACGT}{GT}{CA}?; end;''') content = getContentFromNexus(data)[0] taxa, matrix = content.taxa, content.matrixList[0] self.assertEqual(taxa, ['t1', 't2', 't3', 't4']) self.assertEqual(matrix, expectedMatrix) outstream = StringIO() writeNexusDataMatrix(matrix, outstream, taxa) self.assertEqual(outstream.getvalue(), '''BEGIN DATA; Dimensions ntax = 4 nchar = 4; Format datatype = DNA gap = -; matrix t1 ACGT t2 BDHV t3 RYSW t4 NKM? ; END; ''') def testSimpleAAData(self): data = StringIO('''#NEXUS begin data; dimensions ntax = 4 nchar = 6; format datatype = protein gap = -; matrix t1 X?YWVA t2 TSRQPC t3 NMKLI* t4 HGFED-; end;''') content = getContentFromNexus(data)[0] taxa, matrix = content.taxa, content.matrixList[0] expectedMatrix = CipresIDL_api1.DataMatrix('ACDEFGHIKLMNPQRSTVWY*?X', 21L, 6L, [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]], [ [22, 21, 19, 18, 17, 0], [16, 15, 14, 13, 12, 1], [11, 10, 8, 9, 7, 20], [6, 5, 4, 3, 2, -1] ], CipresIDL_api1.AA_DATATYPE) self.assertEqual(taxa, ['t1', 't2', 't3', 't4']) self.assertEqual(matrix, expectedMatrix) outstream = StringIO() writeNexusDataMatrix(matrix, outstream, taxa) self.assertEqual(outstream.getvalue(), '''BEGIN DATA; Dimensions ntax = 4 nchar = 6; Format datatype = Protein gap = -; matrix t1 X?YWVA t2 TSRQPC t3 NMKLI* t4 HGFED- ; END; ''') if __name__ == '__main__': unittest.main()