Skip to content
Snippets Groups Projects
Commit 1a4cdf97 authored by Studer Gabriel's avatar Studer Gabriel
Browse files

relax testing of found symmetries

Due to different sorting behaviour in Python 2 and 3, the found symmetry
groups might differ while still being conceptually correct. Instead of
expecting exact results, the unit test now only checks for the number
of found groups and their size. Size is checked on the first element,
equal size of those elements is checked elsewhere.
parent e69b79e8
No related branches found
No related tags found
No related merge requests found
...@@ -130,8 +130,10 @@ class TestQSscore(unittest.TestCase): ...@@ -130,8 +130,10 @@ class TestQSscore(unittest.TestCase):
# check mappings # check mappings
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('D', 'F'): ('B', 'D'), ('C', 'E'): ('A', 'C')}) {('D', 'F'): ('B', 'D'), ('C', 'E'): ('A', 'C')})
self.assertEqual(sorted(qs_scorer.symm_1), [('D', 'C'), ('F', 'E')]) self.assertEqual(len(qs_scorer.symm_1), 2)
self.assertEqual(sorted(qs_scorer.symm_2), [('A', 'B'), ('C', 'D')]) self.assertEqual(len(qs_scorer.symm_1[0]), 2)
self.assertEqual(len(qs_scorer.symm_2), 2)
self.assertEqual(len(qs_scorer.symm_2[0]), 2)
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'C': 'A', 'E': 'C', 'D': 'B', 'F': 'D'}) {'C': 'A', 'E': 'C', 'D': 'B', 'F': 'D'})
# check scoring # check scoring
...@@ -151,8 +153,10 @@ class TestQSscore(unittest.TestCase): ...@@ -151,8 +153,10 @@ class TestQSscore(unittest.TestCase):
# check mappings # check mappings
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('C', 'E'): ('A', 'C'), ('D', 'F'): ('D', 'B')}) {('C', 'E'): ('A', 'C'), ('D', 'F'): ('D', 'B')})
self.assertEqual(sorted(qs_scorer.symm_1), [('D', 'C'), ('F', 'E')]) self.assertEqual(len(qs_scorer.symm_1), 2)
self.assertEqual(sorted(qs_scorer.symm_2), [('B', 'A'), ('D', 'C')]) self.assertEqual(len(qs_scorer.symm_1[0]), 2)
self.assertEqual(len(qs_scorer.symm_2), 2)
self.assertEqual(len(qs_scorer.symm_2[0]), 2)
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'C': 'A', 'E': 'C', 'D': 'B', 'F': 'D'}) {'C': 'A', 'E': 'C', 'D': 'B', 'F': 'D'})
# check scoring # check scoring
...@@ -191,8 +195,10 @@ class TestQSscore(unittest.TestCase): ...@@ -191,8 +195,10 @@ class TestQSscore(unittest.TestCase):
self.assertFalse(qs_scorer.calpha_only) self.assertFalse(qs_scorer.calpha_only)
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('A', 'C'): ('A',), ('B', 'D'): ('B',)}) {('A', 'C'): ('A',), ('B', 'D'): ('B',)})
self.assertEqual(sorted(qs_scorer.symm_1), [('A', 'B'), ('C', 'D')]) self.assertEqual(len(qs_scorer.symm_1), 2)
self.assertEqual(sorted(qs_scorer.symm_2), [('A', 'B')]) self.assertEqual(len(qs_scorer.symm_1[0]), 2)
self.assertEqual(len(qs_scorer.symm_2), 1)
self.assertEqual(len(qs_scorer.symm_2[0]), 2)
self.assertEqual(qs_scorer.chain_mapping, {'A': 'A', 'B': 'B'}) self.assertEqual(qs_scorer.chain_mapping, {'A': 'A', 'B': 'B'})
def test_HeteroCase3(self): def test_HeteroCase3(self):
...@@ -208,11 +214,10 @@ class TestQSscore(unittest.TestCase): ...@@ -208,11 +214,10 @@ class TestQSscore(unittest.TestCase):
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('A', 'C', 'E', 'G', 'I', 'K'): ('A', 'C', 'E'), {('A', 'C', 'E', 'G', 'I', 'K'): ('A', 'C', 'E'),
('B', 'D', 'F', 'H', 'J', 'L'): ('B', 'D', 'F')}) ('B', 'D', 'F', 'H', 'J', 'L'): ('B', 'D', 'F')})
self.assertEqual(sorted(qs_scorer.symm_1), self.assertEqual(len(qs_scorer.symm_1), 6)
[('A', 'B'), ('C', 'D'), ('E', 'F'), self.assertEqual(len(qs_scorer.symm_1[0]), 2)
('G', 'H'), ('I', 'J'), ('K', 'L')]) self.assertEqual(len(qs_scorer.symm_2), 3)
self.assertEqual(sorted(qs_scorer.symm_2), self.assertEqual(len(qs_scorer.symm_2[0]), 2)
[('A', 'B'), ('C', 'D'), ('E', 'F')])
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'A':'A', 'B':'B', 'G':'C', 'H':'D', 'I':'E', 'J':'F'}) {'A':'A', 'B':'B', 'G':'C', 'H':'D', 'I':'E', 'J':'F'})
...@@ -303,8 +308,10 @@ class TestQSscore(unittest.TestCase): ...@@ -303,8 +308,10 @@ class TestQSscore(unittest.TestCase):
# check properties # check properties
self.assertFalse(qs_scorer.calpha_only) self.assertFalse(qs_scorer.calpha_only)
self.assertEqual(qs_scorer.chem_mapping, {('A', 'B'): ('B', 'C', 'D', 'A')}) self.assertEqual(qs_scorer.chem_mapping, {('A', 'B'): ('B', 'C', 'D', 'A')})
self.assertEqual(sorted(qs_scorer.symm_1), [('A', 'B')]) self.assertEqual(len(qs_scorer.symm_1), 1)
self.assertEqual(sorted(qs_scorer.symm_2), [('B', 'A'), ('C', 'D')]) self.assertEqual(len(qs_scorer.symm_1[0]), 2)
self.assertEqual(len(qs_scorer.symm_2), 2)
self.assertEqual(len(qs_scorer.symm_2[0]), 2)
self.assertEqual(qs_scorer.chain_mapping, {'A': 'B', 'B': 'A'}) self.assertEqual(qs_scorer.chain_mapping, {'A': 'B', 'B': 'A'})
def test_HomoCase2(self): def test_HomoCase2(self):
...@@ -320,8 +327,10 @@ class TestQSscore(unittest.TestCase): ...@@ -320,8 +327,10 @@ class TestQSscore(unittest.TestCase):
self.assertFalse(qs_scorer.calpha_only) self.assertFalse(qs_scorer.calpha_only)
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('A', 'B', 'C', 'D', 'E', 'F'): ('A', 'B')}) {('A', 'B', 'C', 'D', 'E', 'F'): ('A', 'B')})
self.assertEqual(sorted(qs_scorer.symm_1), [('A', 'B', 'C', 'D', 'E', 'F')]) self.assertEqual(len(qs_scorer.symm_1), 1)
self.assertEqual(sorted(qs_scorer.symm_2), [('B', 'A')]) self.assertEqual(len(qs_scorer.symm_1[0]), 6)
self.assertEqual(len(qs_scorer.symm_2), 1)
self.assertEqual(len(qs_scorer.symm_2[0]), 2)
self.assertEqual(qs_scorer.chain_mapping, {'A': 'A', 'B': 'B'}) self.assertEqual(qs_scorer.chain_mapping, {'A': 'A', 'B': 'B'})
self._CheckScorer(qs_scorer) self._CheckScorer(qs_scorer)
...@@ -425,11 +434,10 @@ class TestQSscore(unittest.TestCase): ...@@ -425,11 +434,10 @@ class TestQSscore(unittest.TestCase):
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('A', 'C', 'E', 'G', 'I', 'K', 'M', 'O'): ('A', 'C', 'E', 'G'), {('A', 'C', 'E', 'G', 'I', 'K', 'M', 'O'): ('A', 'C', 'E', 'G'),
('B', 'D', 'F', 'H', 'J', 'L', 'N', 'P'): ('B', 'D', 'F', 'H')}) ('B', 'D', 'F', 'H', 'J', 'L', 'N', 'P'): ('B', 'D', 'F', 'H')})
self.assertEqual(sorted(qs_scorer.symm_1), self.assertEqual(len(qs_scorer.symm_1), 8)
[('A', 'B'), ('C', 'D'), ('E', 'F'), ('G', 'H'), self.assertEqual(len(qs_scorer.symm_1[0]), 2)
('I', 'J'), ('K', 'L'), ('M', 'N'), ('O', 'P')]) self.assertEqual(len(qs_scorer.symm_2), 4)
self.assertEqual(sorted(qs_scorer.symm_2), self.assertEqual(len(qs_scorer.symm_2[0]), 2)
[('A', 'B'), ('C', 'D'), ('E', 'F'), ('G', 'H')])
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'A': 'A', 'C': 'C', 'B': 'B', 'E': 'E', {'A': 'A', 'C': 'C', 'B': 'B', 'E': 'E',
'D': 'D', 'G': 'G', 'F': 'F', 'H': 'H'}) 'D': 'D', 'G': 'G', 'F': 'F', 'H': 'H'})
...@@ -448,14 +456,10 @@ class TestQSscore(unittest.TestCase): ...@@ -448,14 +456,10 @@ class TestQSscore(unittest.TestCase):
('A', 'E', 'I', 'M', 'Q'): ('A', 'E', 'I', 'M', 'Q'), ('A', 'E', 'I', 'M', 'Q'): ('A', 'E', 'I', 'M', 'Q'),
('C', 'G', 'K', 'O', 'S'): ('C', 'G', 'K', 'O', 'S'), ('C', 'G', 'K', 'O', 'S'): ('C', 'G', 'K', 'O', 'S'),
('B', 'F', 'J', 'N', 'R'): ('B', 'F', 'J', 'N', 'R')}) ('B', 'F', 'J', 'N', 'R'): ('B', 'F', 'J', 'N', 'R')})
self.assertEqual(sorted(qs_scorer.symm_1), self.assertEqual(len(qs_scorer.symm_1), 5)
[('D', 'A', 'S', 'B'), ('H', 'E', 'C', 'F'), self.assertEqual(len(qs_scorer.symm_1[0]), 4)
('L', 'I', 'G', 'J'), ('P', 'M', 'K', 'N'), self.assertEqual(len(qs_scorer.symm_2), 5)
('T', 'Q', 'O', 'R')]) self.assertEqual(len(qs_scorer.symm_2[0]), 4)
self.assertEqual(sorted(qs_scorer.symm_2),
[('D', 'A', 'S', 'B'), ('H', 'E', 'C', 'F'),
('L', 'I', 'G', 'J'), ('P', 'M', 'K', 'N'),
('T', 'Q', 'O', 'R')])
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'A': 'A', 'C': 'C', 'B': 'B', 'E': 'E', 'D': 'D', {'A': 'A', 'C': 'C', 'B': 'B', 'E': 'E', 'D': 'D',
'G': 'G', 'F': 'F', 'I': 'I', 'H': 'H', 'K': 'K', 'G': 'G', 'F': 'F', 'I': 'I', 'H': 'H', 'K': 'K',
...@@ -474,12 +478,10 @@ class TestQSscore(unittest.TestCase): ...@@ -474,12 +478,10 @@ class TestQSscore(unittest.TestCase):
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'): \ {('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'): \
('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L')}) ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L')})
self.assertEqual(sorted(qs_scorer.symm_1), self.assertEqual(len(qs_scorer.symm_1), 6)
[('A', 'D'), ('B', 'E'), ('C', 'F'), self.assertEqual(len(qs_scorer.symm_1[0]), 2)
('G', 'J'), ('H', 'K'), ('I', 'L')]) self.assertEqual(len(qs_scorer.symm_2), 6)
self.assertEqual(sorted(qs_scorer.symm_2), self.assertEqual(len(qs_scorer.symm_2[0]), 2)
[('A', 'G'), ('B', 'I'), ('C', 'E'),
('D', 'K'), ('F', 'J'), ('H', 'L')])
# chain mapping is ambiguous here so we cannot check it # chain mapping is ambiguous here so we cannot check it
def test_Urease(self): def test_Urease(self):
...@@ -496,14 +498,10 @@ class TestQSscore(unittest.TestCase): ...@@ -496,14 +498,10 @@ class TestQSscore(unittest.TestCase):
('B', 'D', 'F', 'H', 'J', 'L', 'N', 'P', 'R', 'T', 'V', 'X'), ('B', 'D', 'F', 'H', 'J', 'L', 'N', 'P', 'R', 'T', 'V', 'X'),
('A', 'C', 'E', 'G', 'I', 'K', 'M', 'O', 'Q', 'S', 'U', 'W'): \ ('A', 'C', 'E', 'G', 'I', 'K', 'M', 'O', 'Q', 'S', 'U', 'W'): \
('A', 'C', 'E', 'G', 'I', 'K', 'M', 'O', 'Q', 'S', 'U', 'W')}) ('A', 'C', 'E', 'G', 'I', 'K', 'M', 'O', 'Q', 'S', 'U', 'W')})
self.assertEqual(sorted(qs_scorer.symm_1), self.assertEqual(len(qs_scorer.symm_1), 12)
[('B', 'Q'), ('D', 'G'), ('F', 'W'), ('H', 'U'), self.assertEqual(len(qs_scorer.symm_1[0]), 2)
('J', 'K'), ('L', 'S'), ('N', 'A'), ('P', 'E'), self.assertEqual(len(qs_scorer.symm_2), 12)
('R', 'M'), ('T', 'I'), ('V', 'C'), ('X', 'O')]) self.assertEqual(len(qs_scorer.symm_2[0]), 2)
self.assertEqual(sorted(qs_scorer.symm_2),
[('B', 'Q'), ('D', 'W'), ('F', 'U'), ('H', 'C'),
('J', 'K'), ('L', 'S'), ('N', 'A'), ('P', 'E'),
('R', 'M'), ('T', 'I'), ('V', 'O'), ('X', 'G')])
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'A': 'A', 'C': 'W', 'B': 'B', 'E': 'E', 'D': 'X', {'A': 'A', 'C': 'W', 'B': 'B', 'E': 'E', 'D': 'X',
'G': 'G', 'F': 'F', 'I': 'I', 'H': 'H', 'K': 'K', 'G': 'G', 'F': 'F', 'I': 'I', 'H': 'H', 'K': 'K',
...@@ -523,12 +521,10 @@ class TestQSscore(unittest.TestCase): ...@@ -523,12 +521,10 @@ class TestQSscore(unittest.TestCase):
self.assertEqual(qs_scorer.chem_mapping, self.assertEqual(qs_scorer.chem_mapping,
{('A', 'B', 'C', 'D', 'E', 'F'): ('A', 'B', 'C', 'D', 'E', 'F'), {('A', 'B', 'C', 'D', 'E', 'F'): ('A', 'B', 'C', 'D', 'E', 'F'),
('G', 'H', 'I', 'J', 'K', 'L'): ('G', 'H', 'I', 'J', 'K', 'L')}) ('G', 'H', 'I', 'J', 'K', 'L'): ('G', 'H', 'I', 'J', 'K', 'L')})
self.assertEqual(sorted(qs_scorer.symm_1), self.assertEqual(len(qs_scorer.symm_1), 6)
[('A', 'G'), ('B', 'H'), ('C', 'I'), self.assertEqual(len(qs_scorer.symm_1[0]), 2)
('D', 'J'), ('E', 'K'), ('F', 'L')]) self.assertEqual(len(qs_scorer.symm_2), 6)
self.assertEqual(sorted(qs_scorer.symm_2), self.assertEqual(len(qs_scorer.symm_2[0]), 2)
[('A', 'G'), ('B', 'H'), ('C', 'I'),
('D', 'J'), ('E', 'K'), ('F', 'L')])
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'A': 'A', 'C': 'C', 'B': 'B', 'E': 'E', {'A': 'A', 'C': 'C', 'B': 'B', 'E': 'E',
'D': 'D', 'G': 'G', 'F': 'F', 'I': 'I', 'D': 'D', 'G': 'G', 'F': 'F', 'I': 'I',
...@@ -548,14 +544,10 @@ class TestQSscore(unittest.TestCase): ...@@ -548,14 +544,10 @@ class TestQSscore(unittest.TestCase):
'J', 'K', 'L', 'N', 'O', 'P', 'R', 'S', 'T', 'V', 'W', 'X'): \ 'J', 'K', 'L', 'N', 'O', 'P', 'R', 'S', 'T', 'V', 'W', 'X'): \
('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X')}) 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X')})
self.assertEqual(sorted(qs_scorer.symm_1), self.assertEqual(len(qs_scorer.symm_1), 12)
[('A', 'X'), ('B', 'H'), ('C', 'P'), ('D', 'K'), self.assertEqual(len(qs_scorer.symm_1[0]), 2)
('E', 'I'), ('F', 'J'), ('G', 'T'), ('L', 'R'), self.assertEqual(len(qs_scorer.symm_2), 12)
('M', 'S'), ('O', 'V'), ('Q', 'N'), ('U', 'W')]) self.assertEqual(len(qs_scorer.symm_2[0]), 2)
self.assertEqual(sorted(qs_scorer.symm_2),
[('A', 'O'), ('B', 'M'), ('C', 'N'), ('D', 'G'),
('E', 'H'), ('F', 'I'), ('J', 'W'), ('K', 'X'),
('L', 'V'), ('P', 'T'), ('Q', 'U'), ('R', 'S')])
self.assertEqual(qs_scorer.chain_mapping, self.assertEqual(qs_scorer.chain_mapping,
{'A': 'J', 'C': 'L', 'B': 'K', 'E': 'P', 'D': 'R', {'A': 'J', 'C': 'L', 'B': 'K', 'E': 'P', 'D': 'R',
'G': 'O', 'F': 'Q', 'I': 'T', 'H': 'X', 'K': 'S', 'G': 'O', 'F': 'Q', 'I': 'T', 'H': 'X', 'K': 'S',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment