From b595adab7a332fccf90714d194e70fdf73e458e3 Mon Sep 17 00:00:00 2001 From: Vivien Maisonneuve Date: Fri, 11 Jul 2014 17:00:47 +0200 Subject: [PATCH] Implement method Point.aspolyhedron() --- pypol/coordinates.py | 7 +++++++ pypol/tests/test_coordinates.py | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pypol/coordinates.py b/pypol/coordinates.py index 78e8d4a..7923648 100644 --- a/pypol/coordinates.py +++ b/pypol/coordinates.py @@ -112,6 +112,13 @@ class Point(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): """ diff --git a/pypol/tests/test_coordinates.py b/pypol/tests/test_coordinates.py index 2e14032..044d773 100644 --- a/pypol/tests/test_coordinates.py +++ b/pypol/tests/test_coordinates.py @@ -1,8 +1,9 @@ import math import unittest -from ..linexprs import Symbol from ..coordinates import * +from ..linexprs import Symbol +from ..polyhedra import Eq 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})) + 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): -- 2.20.1