Example #1
0
class TestPoint(unittest.TestCase):
    def setUp(self):
        self.a = Point(0, 0, 0)
        self.b = Point(1, 2, 3)

    def test_initialisation(self):
        self.assertIsInstance(self.a, Point, msg=None)
        self.assertEqual(self.a.x, 0)
        self.assertEqual(self.a.y, 0)
        self.assertEqual(self.a.z, 0)

    def test_setPosition(self):
        self.a.setPosition(Point(0, 0, 1))
        self.assertEqual(self.a.x, 0)
        self.assertEqual(self.a.y, 0)
        self.assertEqual(self.a.z, 1)

    def test_deplacer(self):
        self.a.deplacer(self.b)
        self.assertEqual(self.a.x, self.b.x)
        self.assertEqual(self.a.y, self.b.y)
        self.assertEqual(self.a.z, self.b.z)

    def test_toVect(self):
        v = self.a.toVect()
        self.assertIsInstance(v, Vecteur, msg=None)
        self.assertEqual(v.x, self.a.x)
        self.assertEqual(v.y, self.a.y)
        self.assertEqual(v.z, self.a.z)
Example #2
0
class Objet3D(object):
    """
    Classe definissant un objet 3D de facon abstraite
    """
    def __init__(self, centre=None):
        """
        centre : Point definissant le centre de l'objet. initialise a (0, 0, 0)
        """
        if centre:
            self.centre = centre
        else:
            self.centre = Point(0, 0, 0)

    def deplacer(self, vecteur):
        """
        deplace les Point dans sommets et centre de l'objet
        """
        self.centre.deplacer(vecteur)

    def tournerAutour(self, point, teta):
        """
        tourne l'objet d'un angle teta auout d'un point
        :param point: Point
        :param teta: float en rad
        """
        self.centre.tournerAutour(point, teta)

    def __repr__(self):
        """
        Quand on entre un objet3D dans l'interpreteur
        """
        return "Objet3D: centre: {}".format(self.centre)

    def __getattr__(self, nom):
        """
        Permet d'acceder a un attribut

        si ce n'est pas possible:
        """
        print("L'attribut {} n'est pas accessible dans {} !".format(
            nom, type(self)))