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)
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)