Exemplo 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)
Exemplo 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
Exemplo 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))
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo n.º 9
0
 def test_request_cost_empty(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertEqual(self._hotel_a.request_cost(request), 0)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo n.º 13
0
 def test_weekday_count_empty(self):
     request = customer.CustomerRequest("Regular", [], "")
     self.assertEqual(request.get_weekday_count(), 0)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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)