#12879: TestSuite failures for HeckeModule Homsets
---------------------------------+------------------------------------------
       Reporter:  nthiery        |         Owner:  craigcitro
           Type:  defect         |        Status:  new       
       Priority:  major          |     Milestone:  sage-5.3  
      Component:  modular forms  |    Resolution:            
       Keywords:                 |   Work issues:            
Report Upstream:  N/A            |     Reviewers:            
        Authors:                 |     Merged in:            
   Dependencies:                 |      Stopgaps:            
---------------------------------+------------------------------------------

Comment (by SimonKing):

 Nicolas suggested to me to move this from #12876 to here. I found the
 following steps needed:

  * Make `HeckeModule_generic` inherit from `UniqueRepresentation`. I guess
 it was for a reason that William did not always want modular forms being
 cached (there ''is'' a cache, but it isn't always used). Since nowadays
 the cache has weak keys, it shouldn't be so bad. I'll ask on sage-nt.
  * Provide the Hecke homsets with a `__reduce__` method, so that (after
 the Hecke modules being unique) the homsets are identical.
  * Provide the Hecke homsets with an `Element` attribute, and let the
 constructors return instances of the `element_class`. Note that there is
 only ''one'' type of morphisms being returned, hence, having a default
 element class absolutely makes sense.
  * It was impossible to override the custom `__call__` method of Hecke
 homsets by a proper `_element_construtor_`, since there is yet another
 custon `__call__` method up in the class hierarchy.
  * Provide the Hecke homsets with a `zero()` method - the default one
 wouldn't work.
  * Provide the Hecke homsets with an `_an_element_` method. The idea is:
 Domain and codomain have a known dimension, and the morphisms are given by
 matrices anyway. Hence, I construct the corresponding matrix space (which
 I made a lazy attribute to the Hecke homsets), take `an_element` from the
 matrix space, and return the corresponding morphism.

 With that approach, I get
 {{{
         sage -t  -force_lib devel/sage/sage/modular/modsym/ambient.py # 1
 doctests failed
         sage -t  -force_lib devel/sage/sage/modular/abvar/homspace.py # 1
 doctests failed
         sage -t  -force_lib devel/sage/sage/modular/modform/constructor.py
 # 3 doctests failed
         sage -t  -force_lib devel/sage/sage/modular/quatalg/brandt.py # 3
 doctests failed
         sage -t  -force_lib
 devel/sage/sage/modular/hecke/ambient_module.py # 2 doctests failed
         sage -t  -force_lib devel/sage/sage/modular/modsym/modsym.py # 2
 doctests failed
         sage -t  -force_lib devel/sage/sage/modular/abvar/homology.py # 9
 doctests failed
         sage -t  -force_lib
 devel/sage/sage/modular/modform/hecke_operator_on_qexp.py # 2 doctests
 failed
 }}}
 which isn't so bad, because most of them fail due to new class names from
 the category framework.

 Suggestion: I provide a small reviewer patch at #12876 making the
 `TestSuite` skip more tests, and then a proper solution will be dealt with
 here.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12879#comment:1>
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