diff --git a/modules/bindings/tests/CMakeLists.txt b/modules/bindings/tests/CMakeLists.txt index 089f1ae9bfcc84e2a8a0e99e5b59e3e193828206..3d3efc3ab5dda99913c4b0717007d9eb3290333e 100644 --- a/modules/bindings/tests/CMakeLists.txt +++ b/modules/bindings/tests/CMakeLists.txt @@ -7,6 +7,7 @@ set(OST_BINDINGS_UNIT_TESTS test_naccess.py test_cadscore.py test_tmtools.py + test_ialign.py ) ost_unittest(MODULE bindings diff --git a/modules/bindings/tests/test_ialign.py b/modules/bindings/tests/test_ialign.py new file mode 100644 index 0000000000000000000000000000000000000000..33b6f610d18b094c66a7a1bde944e69184a4d9f5 --- /dev/null +++ b/modules/bindings/tests/test_ialign.py @@ -0,0 +1,37 @@ +import unittest +from ost import * +from ost import settings +from ost import testutils +from ost.seq.alg import SequenceIdentity +from ost.bindings import ialign + +class TestIAlign(unittest.TestCase): + + def setUp(self): + self.protein = io.LoadEntity("testfiles/testprotein.pdb") + + + def testIAlign(self): + + try: + ialign_exec = settings.Locate('ialign.pl') + except: + print("Could not find ialign master perl script: ignoring unit tests") + return + + ialign_result = ialign.iAlign(self.protein, self.protein) + + # model and reference are the same, we expect pretty good results + self.assertEqual(ialign_result.rmsd, 0.0) + self.assertEqual(ialign_result.is_score, 1.0) + self.assertEqual(SequenceIdentity(ialign_result.alignment), 100.0) + self.assertEqual(ialign_result.aligned_residues, 78) + self.assertEqual(ialign_result.aligned_contacts, 91) + + # transformation should be identity matrix (no transformation at all...) + identity = geom.Mat4(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1) + self.assertEqual(ialign_result.transform, identity) + + +if __name__ == "__main__": + testutils.RunTests()