Implement method Point.aspolyhedron()
authorVivien Maisonneuve <v.maisonneuve@gmail.com>
Fri, 11 Jul 2014 15:00:47 +0000 (17:00 +0200)
committerVivien Maisonneuve <v.maisonneuve@gmail.com>
Fri, 11 Jul 2014 15:04:02 +0000 (17:04 +0200)
pypol/coordinates.py
pypol/tests/test_coordinates.py

index 78e8d4a..7923648 100644 (file)
@@ -112,6 +112,13 @@ class Point(Coordinates):
         return isinstance(other, Point) and \
             self._coordinates == other._coordinates
 
         return isinstance(other, Point) and \
             self._coordinates == other._coordinates
 
+    def aspolyhedron(self):
+        from .polyhedra import Polyhedron
+        equalities = []
+        for symbol, coordinate in self.coordinates():
+            equalities.append(symbol - coordinate)
+        return Polyhedron(equalities)
+
 
 class Vector(Coordinates):
     """
 
 class Vector(Coordinates):
     """
index 2e14032..044d773 100644 (file)
@@ -1,8 +1,9 @@
 import math
 import unittest
 
 import math
 import unittest
 
-from ..linexprs import Symbol
 from ..coordinates import *
 from ..coordinates import *
+from ..linexprs import Symbol
+from ..polyhedra import Eq
 
 
 class TestPoint(unittest.TestCase):
 
 
 class TestPoint(unittest.TestCase):
@@ -29,6 +30,9 @@ class TestPoint(unittest.TestCase):
         self.assertEqual(self.pt1 - self.pt2, Vector({self.x: -5, self.y: -35, self.z: -59}))
         self.assertEqual(self.pt1 - self.vec1, Point({self.x: -10, self.y: -25, self.z: -39}))
 
         self.assertEqual(self.pt1 - self.pt2, Vector({self.x: -5, self.y: -35, self.z: -59}))
         self.assertEqual(self.pt1 - self.vec1, Point({self.x: -10, self.y: -25, self.z: -39}))
 
+    def test_aspolyhedron(self):
+        self.assertEqual(self.pt1.aspolyhedron(), Eq(self.x, 10) & Eq(self.y, 5) & Eq(self.z, 1))
+
 
 class TestVector(unittest.TestCase):
 
 
 class TestVector(unittest.TestCase):