From ea7c587081e05cac8c3061f2bfacdf39d069eeba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Tcho=C5=84?= Date: Wed, 22 Jan 2025 14:45:11 +0100 Subject: [PATCH] :bug: The direction of screw axes should align with their glide --- hikari/symmetry/operations.py | 4 +++- tests/test_operations.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hikari/symmetry/operations.py b/hikari/symmetry/operations.py index 191fd6a..e72ee63 100644 --- a/hikari/symmetry/operations.py +++ b/hikari/symmetry/operations.py @@ -294,7 +294,9 @@ def orientation(self) -> Union[np.ndarray, None]: return None if o is None: return o - o = o if sum(o) > 0 else -o + o = o if sum(o) >= 0 else -o + if self.typ is self.Type.rotoinversion: # same direction as glide + o = o if np.dot(o, self.glide) > 0 else -o return o / np.sqrt(sum(o*o)) @property diff --git a/tests/test_operations.py b/tests/test_operations.py index 19fecfc..45c659f 100644 --- a/tests/test_operations.py +++ b/tests/test_operations.py @@ -142,7 +142,7 @@ def test_sense(self): self.assertEqual(self.sg40_a.sense, '') self.assertEqual(self.sg40_21.sense, '') self.assertEqual(self.sg40_n.sense, '') - self.assertEqual(self.sg147_m3.sense, '+') + self.assertEqual(self.sg147_m3.sense, '-') def test_at(self): self.assertEqual(self.sg40_a.at(p111).code, 'x+1/2,-y+2,z')