def test_400_brevet():
	"""
	testing a 400 km brevet
	"""
	assert brevetTimes(400, 0) == (0,1)
	assert brevetTimes(400, 395) == (11.98, 26.5)
	assert brevetTimes(400, 400) == (12.13, 26.83)
	assert brevetTimes(400, 405) == (12.13, 26.83)
def test_200_brevet():
	"""
	testing a 200 km brevet
	"""
	assert brevetTimes(200, 0) == (0,1)
	assert brevetTimes(200, 100) == (2.94, 6.83)
	assert brevetTimes(200, 150) == (4.41, 10.17)
	assert brevetTimes(200, 200) == (5.88, 13.5)
	assert brevetTimes(200, 205) == (5.88, 13.5)
def test_600_brevet():
	"""
	testing a 600 km brevet
	"""
	assert brevetTimes(600, 200) == (5.88, 13.5)
	assert brevetTimes(600, 400) == (12.13, 26.83)
	assert brevetTimes(600, 595) == (18.63, 39.83)
	assert brevetTimes(600, 600) == (18.8, 40.17)
	assert brevetTimes(600, 605) == (18.8, 40.17)
def test_1000_brevet():
	"""
	testing 1000 km brevet
	"""
	assert brevetTimes(1000, 200) == (5.88, 13.5)
	assert brevetTimes(1000, 400) == (12.13, 26.83)
	assert brevetTimes(1000, 600) == (18.8, 40.17)
	assert brevetTimes(1000, 995) == (32.91, 74.73)
	assert brevetTimes(1000, 1000) == (33.08, 75.17)
	assert brevetTimes(1000, 1200) == (33.08, 75.17)
示例#5
0
def calc_times():
  """
  Calculates open/close times from miles, using rules 
  described at http://www.rusa.org/octime_alg.html.
  Expects one URL-encoded argument, the number of miles. 
  """
  app.logger.debug("Got a JSON request");
 
  miles = request.args.get('miles', 0, type=int)
  brevetDist = request.args.get('brevetDist',0, type=int)
  year, month, day = request.args.get('startDate', 0, type=str).split("/",2)
  
  startHour, startMinutes = request.args.get('startTime', 0, type=str).split(":",1) #gets start time from page and converts it into variables
  
  
  
  
  controldist = mileToKm(miles)   #converts control distance from miles to km
  
  BrevetTime = brevet.brevetTimes(brevetDist, controldist)
  
  
  OpenTime = reformatTime(int(startHour),int(startMinutes))+BrevetTime[0]
  CloseTime = reformatTime(int(startHour),int(startMinutes))+BrevetTime[1]
  
  if OpenTime >= 24:
  	count = OpenTime//24   #incrementing date if brevet lasts longer than 24 hours
  	OpenTime = OpenTime/24
  	OpenDate = (date(int(year), int(month), int(day)) + timedelta(count)).strftime('%y/%m/%d')
  else:
  	OpenDate = (date(int(year), int(month), int(day))).strftime('%y/%m/%d')
  	
  if CloseTime >= 24:
  	count1 = CloseTime//24  #incrementing close date if brevet lasts longer than 24 hours
  	CloseTime = CloseTime/24
  	CloseDate = (date(int(year), int(month), int(day)) + timedelta(count1)).strftime('%y/%m/%d')
  else:
  	CloseDate = (date(int(year), int(month), int(day))).strftime('%y/%m/%d')
  	
  		
  roundedTime = (formatTime(OpenTime), formatTime(CloseTime), OpenDate, CloseDate) # creating tuple to pass back to page
  
  
  return jsonify(result=roundedTime)