<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,14 +1,13 @@
 # -*- coding: utf-8 -*-
 import power
-import time
-from Garmin.Tcx import history
+import time, decimal
 
 def summary(records, options=None):
     '''
-    Summarize activity data
+    Summarize history data (activity data)
     '''
 
-    duration=sum([t['time_diff'] for t in records])
+    duration = sum([t['time_diff'] for t in records])
     
     cad      = [c['cadence'] for c in records]
     hrm      = [hr['heartratebpm'] for hr in records]
@@ -104,16 +103,22 @@ def cad2legspd(cad, cranklen):
     leg speed from cadence and crank length (m/sec)
     
     &gt;&gt;&gt; cad2legspd(60, 172.5)
-    345
+    Decimal(&quot;0.345&quot;)
     &gt;&gt;&gt; cad2legspd(90, 172.5)
-    518
+    Decimal(&quot;0.5175&quot;)
     &gt;&gt;&gt; cad2legspd(95, 170)
-    538
+    Decimal(&quot;0.53832&quot;)
     '''
+    
+    decimal.getcontext().prec = 5
 
-    min = float(60)
-    legspd = round((cranklen * 2) * (cad / min))
-    return float(legspd / 1000)
+    D=decimal.Decimal
+    cranklen=D(str(cranklen))
+    cad, minutes = D(cad), D(60)
+    cad_sec=cad / minutes
+    
+    legspd = ((cranklen * 2) * cad_sec) / 1000
+    return legspd
 
 # def calories(weight, distance, heartrate):
 #   return None
@@ -127,3 +132,10 @@ def peak_n_power(records, timespan):
     print power_sum
     
     return None
+
+def _test():
+    import doctest
+    doctest.testmod()
+
+if __name__ == '__main__':
+    _test()</diff>
      <filename>Bicicalc/calc.py</filename>
    </modified>
    <modified>
      <diff>@@ -33,7 +33,7 @@ def power_legspd(records, cranklen):
     
     for record in records:
         if record['cadence'] &gt; 0:
-            print '%d,%f' % (record['power'], calc.cad2legspd(record['cadence'], cranklen))
+            print '%f,%d' % (calc.cad2legspd(record['cadence'], cranklen), record['power'])
 
 def kml(records, options):
     '''</diff>
      <filename>Bicicalc/export.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,7 @@
+= Requirement =
+ * Python 2.5 or later
+ * SQLite3
+
 = Usage =
 == Garmin ==
 === History Data Summary ===</diff>
      <filename>README</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9abe4d3b2d04589e90946e06201556dd43911504</id>
    </parent>
  </parents>
  <author>
    <name>&#40644;&#24029;&#30000; &#20809;&#22269;</name>
    <email>kikawada@iijima.hq.indexnext.co.jp</email>
  </author>
  <url>http://github.com/key/bicicalc/commit/51b9d7588487d17f0463b5b68ddfb6224761a46a</url>
  <id>51b9d7588487d17f0463b5b68ddfb6224761a46a</id>
  <committed-date>2009-06-30T19:31:19-07:00</committed-date>
  <authored-date>2009-06-30T19:31:19-07:00</authored-date>
  <message> * &#19968;&#37096;&#12395;Decimal&#12434;&#23566;&#20837;</message>
  <tree>fab09f37ee097932da297ae7d942f98865ba7150</tree>
  <committer>
    <name>&#40644;&#24029;&#30000; &#20809;&#22269;</name>
    <email>kikawada@iijima.hq.indexnext.co.jp</email>
  </committer>
</commit>
