#!/usr/bin/python
from sys import *

usage = '''
usage: %s rechargeTime totalMilage

recharge time should be hours, can include fraction of hours

assumptions: you start with full SOC, travel at constant speed until empty,
             and fully recharge. Assumes you the following data points:
               mph   range
               ---   -----
                40    145
                55    100
                70     80
I used this calculator: http://www.mathcelebrity.com/3ptquad.php
to fit a curve to the three points to estimate ranges for other speeds
''' % argv[0]

if len(argv) != 3 :
  print usage
  exit(9)

total_miles = float(argv[2])
recharge_time = float(argv[1])

for speed in range(45,80,5) :
  milage_per_leg = speed*speed*.055555 - 8.27777*speed+387.2222
  num_legs = total_miles / milage_per_leg
  riding_time_per_leg = milage_per_leg / speed
  num_recharges = num_legs - 1
  total_time = num_legs*riding_time_per_leg + num_recharges*recharge_time
  miles_per_hour = total_miles/total_time

  print 'mph: %d legs: %0.1f mpl: %3d avg mph: %d time: %4.1f rideTm: %4.1f chargeTm: %4.1f' % (speed, num_legs, round(milage_per_leg), round(miles_per_hour), total_time, num_legs*riding_time_per_leg, num_recharges*recharge_time)
