#3852: [with patch; needs work] create or adapt or include a units package
------------------------------+---------------------------------------------
 Reporter:  jason             |       Owner:  somebody  
     Type:  enhancement       |      Status:  new       
 Priority:  major             |   Milestone:  sage-4.1.3
Component:  basic arithmetic  |    Keywords:            
 Reviewer:                    |      Author:            
   Merged:                    |  
------------------------------+---------------------------------------------

Comment(by was):

 FIRST REFEREE REPORT on trac_3852.patch:

 1. The doctest coverage is still very bad (38%):

 {{{
 wst...@sage:~/build/sage-4.1.1$ ./sage -coverage
 devel/sage/sage/symbolic/units.py
 ----------------------------------------------------------------------
 devel/sage/sage/symbolic/units.py
 ERROR: Please define a s == loads(dumps(s)) doctest.
 SCORE devel/sage/sage/symbolic/units.py: 38% (5 of 13)

 Missing documentation:
          * evalunitdict():
          * unit_derivations_expr(v):
          * _sage_doc_(self):
          * str_to_unit(name):
          * __init__(self, data):
          * trait_names(self):
          * __getattr__(self, name):


 Missing doctests:
          * vars_in_str(s):


 Possibly wrong (function name doesn't occur in doctests):
          * convert_temperature(expr, target):

 ----------------------------------------------------------------------

 }}}



 2. The new code fails numerous doctests:
 {{{
         sage -t  devel/sage/sage/symbolic/units.py # 4 doctests failed
         sage -t  devel/sage/sage/symbolic/expression.pyx # 2 doctests
 failed
 }}}

 The actual failures:
 {{{

 **********************************************************************
 File
 "/scratch/wstein/build/sage-4.1.1/devel/sage/sage/symbolic/expression.pyx",
 line 5399:
     sage:
 
(units.pressure.pascal*units.si_prefixes.kilo).convert(units.pressure.pounds_per_square_inch)
 Exception raised:
     Traceback (most recent call last):
       File "/scratch/wstein/build/sage-4.1.1/local/bin/ncadoctest.py",
 line 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/scratch/wstein/build/sage-4.1.1/local/bin/sagedoctest.py",
 line 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/scratch/wstein/build/sage-4.1.1/local/bin/ncadoctest.py",
 line 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_137[10]>", line 1, in <module>
 
(units.pressure.pascal*units.si_prefixes.kilo).convert(units.pressure.pounds_per_square_inch)###line
 5399:
     sage:
 
(units.pressure.pascal*units.si_prefixes.kilo).convert(units.pressure.pounds_per_square_inch)
       File "expression.pyx", line 5424, in
 sage.symbolic.expression.Expression.convert
 (sage/symbolic/expression.cpp:21250
 )
       File "/scratch/wstein/build/sage-4.1.1/local/lib/python/site-
 packages/sage/symbolic/units.py", line 1064, in convert
         expr = expr.subs(z)
       File "expression.pyx", line 2777, in
 sage.symbolic.expression.Expression.substitute
 (sage/symbolic/expression.cpp:13
 700)
       File "expression.pyx", line 1517, in
 sage.symbolic.expression.Expression.coerce_in
 (sage/symbolic/expression.cpp:959
 1)
       File "parent_old.pyx", line 331, in
 sage.structure.parent_old.Parent._coerce_
 (sage/structure/parent_old.c:4673)
       File "parent.pyx", line 429, in sage.structure.parent.Parent.coerce
 (sage/structure/parent.c:4806)
     TypeError: no canonical coercion from <type 'str'> to Symbolic Ring

 ...

 File "/scratch/wstein/build/sage-4.1.1/devel/sage/sage/symbolic/units.py",
 line 31:
     e: units.force.dyne?
 Exception raised:
     Traceback (most recent call last):
       File "/scratch/wstein/build/sage-4.1.1/local/bin/ncadoctest.py",
 line 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/scratch/wstein/build/sage-4.1.1/local/bin/sagedoctest.py",
 line 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/scratch/wstein/build/sage-4.1.1/local/bin/ncadoctest.py",
 line 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[6]>", line 1
          units.force.dyne?###line 31:
     e: units.force.dyne?
                          ^
      SyntaxError: invalid syntax
 **********************************************************************
 File "/scratch/wstein/build/sage-4.1.1/devel/sage/sage/symbolic/units.py",
 line 52:

 **********************************************************************
 File "/scratch/wstein/build/sage-4.1.1/devel/sage/sage/symbolic/units.py",
 line 52:
     e: t.convert(unit.charge.coulomb)
 Expected:
     Traceback (most recent call last):
     ...
     ValueError: Incompatible units
 Got:
     Traceback (most recent call last):
       File "/scratch/wstein/build/sage-4.1.1/local/bin/ncadoctest.py",
 line 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/scratch/wstein/build/sage-4.1.1/local/bin/sagedoctest.py",
 line 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/scratch/wstein/build/sage-4.1.1/local/bin/ncadoctest.py",
 line 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[11]>", line 1, in <module>
         t.convert(unit.charge.coulomb)###line 52:
     e: t.convert(unit.charge.coulomb)
     NameError: name 'unit' is not defined


 ...
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/3852#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to