Merge remote-tracking branch 'origin/master'

Conflicts:
	src/m/test/testCamera.py
This commit is contained in:
nadiel
2014-12-24 13:22:25 +01:00
25 changed files with 1386 additions and 11 deletions

75
src/m/Parking.py Normal file
View File

@ -0,0 +1,75 @@
__author__ = 'sidya'
from src.m.Place import Place, ListeTypePlace
class Parking:
"""
Definie un parking
"""
def __init__(self, nbNiv, typePlacesParNiv,nom):
self.__nom = nom
self.__nbPlacesParNiveau = typePlacesParNiv.nbPlaceTotal
self.__prix = 10
self.__nbNiveaux = nbNiv
self.__Places = {}
for n in range(0, nbNiv):
l = []
for t in typePlacesParNiv.liste:
for i in range(0, t.nb):
l.append(Place(i + 1, n, t.longueur, t.hauteur))
self.__Places[n] = l
@property
def nom(self):
return self.__nom
@property
def nbPlacesParNiveau(self):
return self.__nbPlacesParNiveau
@property
def nbNiveau(self):
return self.__nbNiveaux
def recherchePlace(self, voiture):
place = None
for i in range(0, self.__nbNiveaux):
if place != None:
break
l = [p for p in self.__Places[i].estLibre]
for p in l:
if p.dimValide(voiture.hauteur, voiture.longueur):
pass
place = p
break
return place
def nbPlacesLibresNiveau(self, niveau):
i = 0
for p in self.__Places[niveau]:
if p.estLibre:
i += 1
return i
@property
def nbPlacesLibresParking(self):
nbP = 0
for i in range(0,self.__nbNiveaux) :
nbP += self.nbPlacesLibresNiveau(i)
return nbP
def addAbonnement(self, Abonnement):
pass
def __str__(self):
return "Parking : niveau : " + str(self.__nbNiveaux)
if __name__ == "__main__":
l = ListeTypePlace()
l.add(10, 11, 5)
l.add(7, 12, 5)
p = Parking(5, l)
print(p)
print(p.nbPlacesLibresNiveau(1))

103
src/m/Place.py Normal file
View File

@ -0,0 +1,103 @@
import sys
import datetime
__author__ = 'sidya'
class Place:
"""
Representation d'une place dans un parking
"""
def __init__(self, numero, niveau, longueur, hauteur):
self.__numero = numero
self.__niveau = niveau
self.__longueur = longueur
self.__hauteur = hauteur
self.__estLibre = True
self.__estReserver = False
self.__Placement = None
@property
def estLibre(self):
return self.__estLibre
@property
def estReserver(self):
return self.__estReserver
def dimValide(self, h, l):
return h < self.__hauteur and l < self.__longueur
def reserver(self):
if (self.__estReserver == True) :
raise Exception("Place déjà reservé")
self.__estReserver = True
def nonReserver(self) :
if (self.__estReserver == False):
raise Exception("Impossible de mettre une place en non si elle n'est pas reservé de base")
self.__estReserver = False
def prendre(self, Placement):
if (self.__Libre == True) :
raise Exception("Place déjà prise")
self.__estLibre = False
self.__Placement = Placement
def liberer(self) :
if (self.__estLibre == False):
raise Exception("Impossible de liberer une place vide")
self.__estLibre = True
class TypePlace:
"""
Classe qui permet de définir un type de place
"""
def __init__(self, h, l, nb):
self.__hauteur = h
self.__longueur = l
self.__nb = nb
@property
def hauteur(self):
return self.__hauteur
@property
def longueur(self):
return self.__longueur
@property
def nb(self):
return self.__nb
class ListeTypePlace:
"""
Classe qui permet de définir une liste de type de place par niveau pour la création d'un parking
"""
def __init__(self):
self.l = []
def add(self, h, l, nb):
self.l.append(TypePlace(h, l, nb))
@property
def nbPlaceTotal(self):
i = 0
for t in self.l:
i += t.nb
return i
@property
def liste(self):
return self.l
class Placement:
def __init__(self,debut,fin):
self.debut = debut
self.fin = fin
@property
def estEnCours(self):
return datetime.datetime < self.fin

View File

@ -0,0 +1,4 @@
__author__ = 'sidya'
class TestParking :
pass

View File

@ -1,5 +1,5 @@
__author__ = 'sidya'
class Camera:
class TestPlace :
pass

View File

@ -1,10 +0,0 @@
from src.m.camera import Camera
__author__ = 'sidya'
import nose
class testCamera :
def testTailleMax(self):
c = Camera()
assert (c.capturerHauteur()>1.5)