Esempio n. 1
0
 def test_weekend_count_full_week(self):
     request = customer.CustomerRequest("Regular", ["16Mar2009(mon)", 
                                                    "17Mar2009(tues)",
                                                    "18Mar2009(wed)",
                                                    "19Mar2009(thur)",
                                                    "20Mar2009(fri)",
                                                    "21Mar2009(sat)",
                                                    "22Mar2009(sun)"], "")
     self.assertEqual(request.get_weekend_count(), 2)
Esempio n. 2
0
  def get_next(self):
    next_request = None
    valid_input = False

    # Iterate over the input source until it finds
    # valid input line or the input source is over
    while not valid_input and self._source_index < len(self._input_source):
      input_line = self._input_source[self._source_index].rstrip()
      if(TextFileReader.valid_input(input_line)):
        customer_type = input_line.split(':')[0]
        booking_dates = re.findall("\w+\(\w+\)", input_line)

        next_request = customer.CustomerRequest(customer_type,
                                                booking_dates, input_line)
        valid_input = True

      self._source_index += 1

    return next_request
Esempio n. 3
0
 def test_compare_hotels_none_a_none_b(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertIsNone(hotels.HotelChain.compare_hotels(None, None, request))
Esempio n. 4
0
 def test_request_cost_special_mixed(self):
     request = customer.CustomerRequest("Special", ["16Mar2009(sat)", 
                                                    "17Mar2009(sun)",
                                                    "18Mar2009(mon)",
                                                    "19Mar2009(tues)"], "")
     self.assertEqual(self._hotel_a.request_cost(request), 180)
Esempio n. 5
0
 def test_request_cost_regular_mixed(self):
     request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", 
                                                    "17Mar2009(sun)",
                                                    "18Mar2009(mon)",
                                                    "19Mar2009(tues)"], "")
     self.assertEqual(self._hotel_a.request_cost(request), 300)
Esempio n. 6
0
 def test_request_cost_special_weekend_2(self):
     request = customer.CustomerRequest("Special", ["16Mar2009(sat)", 
                                                    "17Mar2009(sun)"], "")
     self.assertEqual(self._hotel_a.request_cost(request), 70)
Esempio n. 7
0
 def test_request_cost_regular_weekend_2(self):
     request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", 
                                                    "17Mar2009(sun)"], "")
     self.assertEqual(self._hotel_a.request_cost(request), 120)
Esempio n. 8
0
 def test_compare_hotels_special(self):
     request = customer.CustomerRequest("Special", ["16Mar2009(fri)", 
                                                    "17Mar2009(sat)",
                                                    "18Mar2009(sun)"], "")
     self.assertEqual(hotels.HotelChain.compare_hotels(
                       self._hotel_a, self._hotel_b, request), self._hotel_b)
Esempio n. 9
0
 def test_request_cost_empty(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertEqual(self._hotel_a.request_cost(request), 0)
Esempio n. 10
0
 def test_find_cheapest_hotel_exception(self):
     request = customer.CustomerRequest("Undefined", ["16Mar2009(fri)"], "")
     with self.assertRaises(KeyError):
       self._hotel_chain.find_cheapest_hotel(request)
Esempio n. 11
0
 def test_find_cheapest_hotel_special(self):
     request = customer.CustomerRequest("Special", ["16Mar2009(fri)", 
                                                    "17Mar2009(sat)",
                                                    "18Mar2009(sun)"], "")
     self.assertEqual(self._hotel_chain.find_cheapest_hotel(request), self._hotel_b.name)
Esempio n. 12
0
 def test_find_cheapest_hotel_empty(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertEqual(self._hotel_chain.find_cheapest_hotel(request), self._hotel_b.name)
Esempio n. 13
0
 def test_weekday_count_empty(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertEqual(request.get_weekday_count(), 0)
Esempio n. 14
0
 def test_weekend_count_mixed(self):
     request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", 
                                                    "17Mar2009(sun)",
                                                    "18Mar2009(mon)",
                                                    "19Mar2009(tues)"], "")
     self.assertEqual(request.get_weekend_count(), 2)
Esempio n. 15
0
 def test_compare_hotels_a_none_b(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertEqual(hotels.HotelChain.compare_hotels(
                               self._hotel_a, None, request), self._hotel_a)
Esempio n. 16
0
 def test_compare_hotels_draw(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertEqual(hotels.HotelChain.compare_hotels(
                       self._hotel_a, self._hotel_b, request), self._hotel_b)
Esempio n. 17
0
 def test_request_cost_regular_weekday_2(self):
     request = customer.CustomerRequest("Regular", ["16Mar2009(mon)", 
                                                    "17Mar2009(tues)"], "")
     self.assertEqual(self._hotel_a.request_cost(request), 180)
Esempio n. 18
0
 def test_request_cost_special_weekday_2(self):
     request = customer.CustomerRequest("Special", ["16Mar2009(mon)", 
                                                    "17Mar2009(tues)"], "")
     self.assertEqual(self._hotel_a.request_cost(request), 110)
Esempio n. 19
0
 def test_weekend_count_only_2(self):
     request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", 
                                                    "17Mar2009(sun)"], "")
     self.assertEqual(request.get_weekend_count(), 2)