示例#1
0
def process_line(line):
    global parking
    line = line.split(" ")
    command = line[0]
    args = line[1:]

    try:
        if "create_parking_lot" in command:
            parking = Parking(int(args[0]))
            print("Created a parking lot with " + str(parking.size) + " slots")

        elif "park" in command:
            slot = parking.newCar(args[0], args[1])
            if slot == -1:
                print("Sorry, parking lot is full")
            else:
                print("Allocated slot number: " + str(slot))

        elif "leave" in command:
            result = parking.leave(int(args[0]))
            print("Slot number " + str(result[0]) + " is free")

        elif "registration_numbers_for_cars_with_colour" in command:
            cars = parking.find_cars_by_color(args[0])
            for i in cars:
                print(i[1].getRegNo(), end=" ")
            print("")

        elif "slot_numbers_for_cars_with_colour" in command:
            cars = parking.find_cars_by_color(args[0])
            if cars == None:
                print("Not found")
            else:
                for i in cars:
                    print(i[0], end=" ")
                print("")

        elif "slot_number_for_registration_number " in command:
            slot = parking.find_car_by_reg_no(args[0])
            print(slot)
            if slot:
                print(slot)

        elif "status" in command:
            print("Slot No\tReg No\tColour")
            for i in range(0, len(parking.lot)):
                if parking.lot[i]:
                    print("%d\t%s\t%s" % (i + 1, parking.lot[i].reg_no, parking.lot[i].color), end="")

    except ValueError:
        print("Invalid Data Entered!")
    except TypeError:
        print("Datatype Mismatch!")
示例#2
0
 def setUp(self):
     self.lot = Parking(5)
示例#3
0
class TestParkingLotMethods(unittest.TestCase):

    def setUp(self):
        self.lot = Parking(5)

    def test_add_new_cars_to_lot(self):
        self.assertEqual(1, self.lot.newCar("KA-01-HH-1234", "White"))
        self.assertEqual(2, self.lot.newCar("KA-02-HH-1234", "White"))
        self.assertEqual(3, self.lot.newCar("KA-03-HH-1234", "White"))
        self.assertEqual(self.lot.currentCarCount(), 3)

    def test_add_and_remove_multiple_new_cars_to_lot(self):
        self.assertEqual(1, self.lot.newCar("KA-01-HH-1234", "White"))
        self.assertEqual(2, self.lot.newCar("KA-02-HH-1234", "White"))
        self.lot.leave(1)
        self.assertEqual(1, self.lot.newCar("KA-03-HH-1234", "White"))

    def test_new_cars_returns_lot_full_when_lot_full(self):
        self.assertEqual(1, self.lot.newCar("KA-01-HH-1234", "White"))
        self.assertEqual(2, self.lot.newCar("KA-02-HH-1234", "White"))
        self.assertEqual(3, self.lot.newCar("KA-03-HH-1234", "White"))
        self.assertEqual(4, self.lot.newCar("KA-04-HH-1234", "White"))
        self.assertEqual(5, self.lot.newCar("KA-05-HH-1234", "White"))
        print(self.lot.lot)
        self.assertEqual(-1, self.lot.newCar("KA-06-HH-1234", "White"))

    def test_leave_returns_error_if_slot_is_empty(self):
        self.assertEqual(self.lot.leave(3), -1)

    def test_find_cars_by_color(self):
        self.lot.newCar("KA-01-HH-1234", "white")
        self.lot.newCar("KA-02-HH-1234", "White")
        self.lot.newCar("KA-03-HH-1234", "Black")
        self.lot.newCar("KA-04-HH-1234", "black")
        self.lot.newCar("KA-05-HH-1234", "BLACK")
        white_cars = self.lot.find_cars_by_color("WHITE")
        black_cars = self.lot.find_cars_by_color("bLaCk")
        self.assertEqual(len(white_cars), 2)
        self.assertEqual(len(black_cars), 3)
        
        #find_cars_by_color returns a list of tuples having (slot, Car)
        self.assertEqual(white_cars[1][0], 2)
        self.assertEqual(black_cars[1][0], 4)
        self.assertIsInstance(white_cars[0][1], Car)

    def test_find_cars_by_color_raises_error_if_arg_not_str(self):
        self.assertRaises(ValueError, self.lot.find_cars_by_color, 123)

    def test_find_car_by_reg_no(self):
        self.lot.newCar("KA-01-HH-1234", "white")
        self.lot.newCar("KA-02-HH-1234", "red")
        self.lot.newCar("KA-03-HH-1234", "green")
        
        #find_car_by_reg_no returns slot
        self.assertEqual(self.lot.find_car_by_reg_no("KA-02-HH-1234"), 2)
   
    def test_find_car_by_reg_no_returns_none_if_not_found(self):
        self.assertEqual(self.lot.find_car_by_reg_no("KA-02-HH-1234"), None)
 def test_create_new_parking_lot(self):
     park_lot = Parking(6)
     result = park_lot.size
     self.assertEqual(6, result)
 def setUp(self):
     self.lot = Parking(5)
class TestParkingLotMethods(unittest.TestCase):
    def setUp(self):
        self.lot = Parking(5)

    def test_add_new_cars_to_lot(self):
        self.assertEqual(1, self.lot.newCar("KA-01-HH-1234", "White"))
        self.assertEqual(2, self.lot.newCar("KA-02-HH-1234", "White"))
        self.assertEqual(3, self.lot.newCar("KA-03-HH-1234", "White"))
        self.assertEqual(self.lot.currentCarCount(), 3)

    def test_add_and_remove_multiple_new_cars_to_lot(self):
        self.assertEqual(1, self.lot.newCar("KA-01-HH-1234", "White"))
        self.assertEqual(2, self.lot.newCar("KA-02-HH-1234", "White"))
        self.lot.leave(1)
        self.assertEqual(1, self.lot.newCar("KA-03-HH-1234", "White"))

    def test_new_cars_returns_lot_full_when_lot_full(self):
        self.assertEqual(1, self.lot.newCar("KA-01-HH-1234", "White"))
        self.assertEqual(2, self.lot.newCar("KA-02-HH-1234", "White"))
        self.assertEqual(3, self.lot.newCar("KA-03-HH-1234", "White"))
        self.assertEqual(4, self.lot.newCar("KA-04-HH-1234", "White"))
        self.assertEqual(5, self.lot.newCar("KA-05-HH-1234", "White"))
        print(self.lot.lot)
        self.assertEqual(-1, self.lot.newCar("KA-06-HH-1234", "White"))

    def test_leave_returns_error_if_slot_is_empty(self):
        self.assertEqual(self.lot.leave(3), -1)

    def test_find_cars_by_color(self):
        self.lot.newCar("KA-01-HH-1234", "white")
        self.lot.newCar("KA-02-HH-1234", "White")
        self.lot.newCar("KA-03-HH-1234", "Black")
        self.lot.newCar("KA-04-HH-1234", "black")
        self.lot.newCar("KA-05-HH-1234", "BLACK")
        white_cars = self.lot.find_cars_by_color("WHITE")
        black_cars = self.lot.find_cars_by_color("bLaCk")
        self.assertEqual(len(white_cars), 2)
        self.assertEqual(len(black_cars), 3)

        #find_cars_by_color returns a list of tuples having (slot, Car)
        self.assertEqual(white_cars[1][0], 2)
        self.assertEqual(black_cars[1][0], 4)
        self.assertIsInstance(white_cars[0][1], Car)

    def test_find_cars_by_color_raises_error_if_arg_not_str(self):
        self.assertRaises(ValueError, self.lot.find_cars_by_color, 123)

    def test_find_car_by_reg_no(self):
        self.lot.newCar("KA-01-HH-1234", "white")
        self.lot.newCar("KA-02-HH-1234", "red")
        self.lot.newCar("KA-03-HH-1234", "green")

        #find_car_by_reg_no returns slot
        self.assertEqual(self.lot.find_car_by_reg_no("KA-02-HH-1234"), 2)

    def test_find_car_by_reg_no_returns_none_if_not_found(self):
        self.assertEqual(self.lot.find_car_by_reg_no("KA-02-HH-1234"), None)