#12224: Language as parent / Word as element
-----------------------------------------------------------------+----------
       Reporter:  vdelecroix                                     |         
Owner:  vdelecroix
           Type:  enhancement                                    |        
Status:  new       
       Priority:  major                                          |     
Milestone:  sage-5.6  
      Component:  combinatorics                                  |    
Resolution:            
       Keywords:  word, language, symbolic dynamics              |   Work 
issues:            
Report Upstream:  N/A                                            |     
Reviewers:            
        Authors:  Vincent Delecroix                              |     Merged 
in:            
   Dependencies:  #8920, #12230, #12518, #13778, #13956, #13957  |      
Stopgaps:            
-----------------------------------------------------------------+----------

Comment (by slabbe):

 I started the review. Here is a first bunch of comments.

 1. The goal of this patch reimplements the code structure of
 {{{sage/combinat/words}}} using categories. It also adds classes for
 languages which is a good thing that I would need for my own research. It
 touches other files outside of this folder. It also depends on some
 particular tickets fixing bugs in Cython (#13957) and other patches that
 apply on similar files which do not commute with this huge patch. Moreover
 since it is a huge patch touching many files, it prevents any
 user/developper to change any code in {{{sage/combinat/words}}} without
 creating conflicts. So I hope this will not take forever to get reviewed
 because meanwhile it prevents the evolution of the actual code.

 2. It is a huge patch (1.3MG). It modifies 40 files, add 27 files and
 removes 6 files (see detailed list below). It is hard for any reviewer to
 make sure he doesn't miss a problem possibly added by the patch. Is there
 a way to cut the patch in different chunks (tickets) which could make it
 more easy to get it into Sage because easier for reviewers?

 {{{
 ~/Applications/sage-5.6.rc0/devel/sage-language/sage/combinat/words $ hg
 qtop
 trac_12224-language-vd.patch
 ~/Applications/sage-5.6.rc0/devel/sage-language/sage/combinat/words $ hg
 qst
 M doc/en/reference/categories.rst
 M doc/en/reference/combinat/words.rst
 M module_list.py
 M sage/all.py
 M sage/categories/algebras.py
 M sage/categories/algebras_with_basis.py
 M sage/categories/all.py
 M sage/categories/examples/algebras_with_basis.py
 M sage/categories/modules_with_basis.py
 M sage/categories/primer.py
 M sage/categories/rings.py
 M sage/categories/sets_cat.py
 M sage/combinat/all.py
 M sage/combinat/debruijn_sequence.pyx
 M sage/combinat/e_one_star.py
 M sage/combinat/free_module.py
 M sage/combinat/iet/constructors.py
 M sage/combinat/iet/labelled.py
 M sage/combinat/iet/reduced.py
 M sage/combinat/lyndon_word.py
 M sage/combinat/ribbon.py
 M sage/combinat/ribbon_tableau.py
 M sage/combinat/sf/ns_macdonald.py
 M sage/combinat/skew_tableau.py
 M sage/combinat/tableau.py
 M sage/combinat/words/__init__.py
 M sage/combinat/words/all.py
 M sage/combinat/words/alphabet.py
 M sage/combinat/words/morphism.py
 M sage/combinat/words/notes/history.txt
 M sage/combinat/words/paths.py
 M sage/combinat/words/shuffle_product.py
 M sage/combinat/words/suffix_trees.py
 M sage/combinat/words/word.py
 M sage/combinat/words/word_datatypes.pyx
 M sage/combinat/words/word_generators.py
 M sage/combinat/words/words.py
 M sage/graphs/digraph_generators.py
 M sage/sets/disjoint_set.pyx
 M setup.py
 A sage/categories/examples/languages.py
 A sage/categories/factorial_languages.py
 A sage/categories/languages.py
 A sage/categories/shifts.py
 A sage/combinat/languages/__init__.py
 A sage/combinat/languages/all.py
 A sage/combinat/languages/balanced_languages.py
 A sage/combinat/languages/base_class.py
 A sage/combinat/languages/finite_word_language.py
 A sage/combinat/languages/generators.py
 A sage/combinat/languages/language.pxd
 A sage/combinat/languages/language.pyx
 A sage/combinat/words/finite_word.pxd
 A sage/combinat/words/finite_word.pyx
 A sage/combinat/words/infinite_word.pxd
 A sage/combinat/words/infinite_word.pyx
 A sage/combinat/words/lazy_word.py
 A sage/combinat/words/maps.py
 A sage/combinat/words/notes/categorification.txt
 A sage/combinat/words/word_datatypes.pxd
 A sage/combinat/words/word_deprecation.py
 A sage/combinat/words/word_integer.py
 A sage/dynamics/__init__.py
 A sage/dynamics/all.py
 A sage/dynamics/symbolic/__init__.py
 A sage/dynamics/symbolic/all.py
 A sage/dynamics/symbolic/full_shift.py
 R sage/combinat/words/abstract_word.py
 R sage/combinat/words/finite_word.py
 R sage/combinat/words/infinite_word.py
 R sage/combinat/words/notes/word_inheritance_howto.txt
 R sage/combinat/words/word_infinite_datatypes.py
 R sage/combinat/words/word_options.py
 }}}

 2. The actual path creates a reject on the tableau file (I am still using
 the svn directory for the patches. I will test the patch from the ticket
 instead soon. Maybe that's the reason for the reject.) :

 {{{
 10 slabbe@pol ~/Applications/sage-5.6.rc0/devel/sage-language $ hg qpush
 -a
 applying trac_12466-ss.patch
 applying trac_12230-growing_letters-ss.patch
 applying trac_12230-growing_letters-review-vd.patch
 applying trac_13801-fix_facade_initialisation-vd.patch
 applying trac_8920-alphabet-vd.patch
 applying trac_13803-limits.patch
 applying trac_10962-pickle_set_pythontype.patch
 applying trac_13956-shift_argument.patch
 applying trac_13957-catch_value_error.patch
 applying trac_12224-language-vd.patch
 patching file sage/combinat/tableau.py
 Hunk #2 FAILED at 434
 Hunk #4 FAILED at 584
 Hunk #5 FAILED at 2070
 3 out of 5 hunks FAILED -- saving rejects to file
 sage/combinat/tableau.py.rej
 patch failed, unable to continue (try -v)
 patch failed, rejects left in working dir
 errors during apply, please fix and refresh trac_12224-language-vd.patch
 }}}

 3. Here are some testing errors I get on the {{{sage/combinat/words}}}
 folder. This shows that some doctest are machine dependant (32bit vs 64
 bits, ordering of string and int which depends on the machine : 'a'<9 vs
 'a'>9 for cmp). Also for the last doctest error ({{{352}}} can be replaced
 by {{{...}}} to avoid future problem with lines added before) :

 {{{
 ~/Applications/sage-5.6.rc0/devel/sage-language/sage/combinat/words $ sage
 -t *
 sage -t  "devel/sage-language/sage/combinat/words/__init__.py"
          [0.2 s]
 sage -t  "devel/sage-language/sage/combinat/words/all.py"
          [0.2 s]
 sage -t  "devel/sage-language/sage/combinat/words/alphabet.py"
          [5.7 s]
 sage -t  "devel/sage-language/sage/combinat/words/finite_word.pyx"
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 language/sage/combinat/words/finite_word.pyx", line 51:
     sage: hash('ab')
 Expected:
     12416074593111939
 Got:
     -1549758589
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 language/sage/combinat/words/finite_word.pyx", line 53:
     sage: hash(('a','b'))
 Expected:
     -3816799034373630758
 Got:
     555422938
 **********************************************************************
 1 items had failures:
    2 of  15 in __main__.example_0
 ***Test Failed*** 2 failures.
 For whitespace errors, see the file
 /Users/slabbe/.sage//tmp/finite_word_10377.py
          [5.8 s]
 sage -t  "devel/sage-language/sage/combinat/words/infinite_word.pyx"
          [4.0 s]
 sage -t  "devel/sage-language/sage/combinat/words/lazy_word.py"
          [26.6 s]
 sage -t  "devel/sage-language/sage/combinat/words/maps.py"
          [4.2 s]
 sage -t  "devel/sage-language/sage/combinat/words/morphism.py"
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 language/sage/combinat/words/morphism.py", line 496:
     sage: WordMorphism({'a':['a',6,'a'],6:[6,6,6,'a']})
 Expected:
     6->666a a->a6a
 Got:
     a->a6a 6->666a
 **********************************************************************
 1 items had failures:
    1 of  20 in __main__.example_12
 ***Test Failed*** 1 failures.
 For whitespace errors, see the file
 /Users/slabbe/.sage//tmp/morphism_10398.py
          [9.4 s]
 sage -t  "devel/sage-language/sage/combinat/words/paths.py"
          [14.1 s]
 sage -t  "devel/sage-language/sage/combinat/words/shuffle_product.py"
          [6.1 s]
 sage -t  "devel/sage-language/sage/combinat/words/suffix_trees.py"
          [8.7 s]
 sage -t  "devel/sage-language/sage/combinat/words/word.py"
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 language/sage/combinat/words/word.py", line 103:
     sage: Word([1,2,3,'3']).parent()
 Expected:
     Finite words over {1, 2, 3, '3'}
 Got:
     Finite words over {'3', 1, 2, 3}
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 language/sage/combinat/words/word.py", line 167:
     sage: w = Word(count()) # iterators default to infinite words ...
 Expected:
     doctest:353: UserWarning: It is safer to initialize a word not with an
 iterable but with a function that returns an iterable
 Got:
     doctest:352: UserWarning: It is safer to initialize a word not with an
 iterable but with a function that returns an iterable
 **********************************************************************
 1 items had failures:
    2 of  56 in __main__.example_1
 ***Test Failed*** 2 failures.
 For whitespace errors, see the file /Users/slabbe/.sage//tmp/word_10441.py
          [4.1 s]
 sage -t  "devel/sage-language/sage/combinat/words/word_datatypes.pyx"
          [4.1 s]
 sage -t  "devel/sage-language/sage/combinat/words/word_deprecation.py"
          [4.7 s]
 sage -t  "devel/sage-language/sage/combinat/words/word_generators.py"
          [10.0 s]
 sage -t  "devel/sage-language/sage/combinat/words/word_integer.py"
          [3.9 s]
 sage -t  "devel/sage-language/sage/combinat/words/words.py"
          [8.3 s]

 ----------------------------------------------------------------------
 The following tests failed:


         sage -t  "devel/sage-language/sage/combinat/words/finite_word.pyx"
         sage -t  "devel/sage-language/sage/combinat/words/morphism.py"
         sage -t  "devel/sage-language/sage/combinat/words/word.py"
 Total time for all tests: 120.0 seconds
 }}}

 4. I am interested in knowing whether my own code will continue to work
 after this ticket get merged. Eventually, I will test my own code during
 this review. But for now I did only one test : I check whether the
 doctests defined in the {{{sage-main}}} branch {{{sage-5.6.rc0}}} still
 pass or not. To start I tested only one file modified by the ticket :
 {{{finite_word.py}}}. I get 618 failures. Some of them are {{{__repr__}}}
 modifications that I can accept. But there are a *lots* of methods that do
 not exist anymore. That means a lot of code will get broken... This needs
 to be fixed.

 {{{
 ~/Applications/sage-5.6.rc0/devel/sage-main/sage/combinat/words $ sage -t
 finite_word.py
 sage -t  "devel/sage-main/sage/combinat/words/finite_word.py"
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 21:
     sage: Word("abbabaab")
 Expected:
     word: abbabaab
 Got:
     abbabaab
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 23:
     sage: Word([0, 1, 1, 0, 1, 0, 0, 1])
 Expected:
     word: 01101001
 Got:
     01101001
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 25:
     sage: Word( ('a', 0, 5, 7, 'b', 9, 8) )
 Expected:
     word: a057b98
 Got:
     a057b98
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 31:
     sage: Word(f, length=13)
 Expected:
     word: 0120120120120
 Got:
     0.1.2.0.1.2.0.1.2.0.1.2.0

 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 42:
     sage: Word( iter('abbccdef') )
 Exception raised:
     Traceback (most recent call last):
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/sagedoctest.py", line
 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[9]>", line 1, in <module>
         Word( iter('abbccdef') )###line 42:
     sage: Word( iter('abbccdef') )
       File "/Users/slabbe/Applications/sage-5.6.rc0/local/lib/python/site-
 packages/sage/combinat/words/word.py", line 262, in Word
         return parent(data, **options)
       File "parent.pyx", line 807, in
 sage.structure.parent.Parent.__call__ (sage/structure/parent.c:7388)
       File "coerce_maps.pyx", line 82, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3583)
       File "coerce_maps.pyx", line 77, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3485)
       File "/Users/slabbe/Applications/sage-5.6.rc0/local/lib/python/site-
 packages/sage/combinat/words/words.py", line 1705, in
 _element_constructor_
         return self.infinite_words()(data, **options)
       File "parent.pyx", line 809, in
 sage.structure.parent.Parent.__call__ (sage/structure/parent.c:7408)
       File "coerce_maps.pyx", line 100, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args
 (sage/structure/coerce_maps.c:4004)
       File "coerce_maps.pyx", line 90, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args
 (sage/structure/coerce_maps.c:3816)
       File "/Users/slabbe/Applications/sage-5.6.rc0/local/lib/python/site-
 packages/sage/categories/shifts.py", line 376, in _element_constructor_
         self.check_element(w)
       File "/Users/slabbe/Applications/sage-5.6.rc0/local/lib/python/site-
 packages/sage/dynamics/symbolic/full_shift.py", line 217, in check_element
         if elt[i] not in A:
       File "/Users/slabbe/Applications/sage-5.6.rc0/local/lib/python/site-
 packages/sage/combinat/words/lazy_word.py", line 791, in __getitem__
         return self._get_letter(key)
       File "lazy_list.pyx", line 615, in
 sage.misc.lazy_list.lazy_list.__call__ (sage/misc/lazy_list.c:3849)
     IndexError: lazy list index out of range
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 49:
     sage: u * v
 Exception raised:
     Traceback (most recent call last):
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/sagedoctest.py", line
 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[12]>", line 1, in <module>
         u * v###line 49:
     sage: u * v
       File "element.pyx", line 1403, in
 sage.structure.element.MonoidElement.__mul__
 (sage/structure/element.c:11940)
       File "element.pyx", line 1397, in
 sage.structure.element.MonoidElement.__mul__
 (sage/structure/element.c:11801)
       File "coerce.pyx", line 797, in
 sage.structure.coerce.CoercionModel_cache_maps.bin_op
 (sage/structure/coerce.c:7671)
     TypeError: unsupported operand parent(s) for '*': 'Finite words over
 {'a', 'b', 'c'}' and 'Finite words over {0, 3, 4, 8}'
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 51:
     sage: v * u
 Exception raised:
     Traceback (most recent call last):
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/sagedoctest.py", line
 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[13]>", line 1, in <module>
         v * u###line 51:
     sage: v * u
       File "element.pyx", line 1403, in
 sage.structure.element.MonoidElement.__mul__
 (sage/structure/element.c:11940)
       File "element.pyx", line 1397, in
 sage.structure.element.MonoidElement.__mul__
 (sage/structure/element.c:11801)
       File "coerce.pyx", line 797, in
 sage.structure.coerce.CoercionModel_cache_maps.bin_op
 (sage/structure/coerce.c:7671)
     TypeError: unsupported operand parent(s) for '*': 'Finite words over
 {0, 3, 4, 8}' and 'Finite words over {'a', 'b', 'c'}'
 **********************************************************************

 [...]

 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 99:
     sage: w.number_of_factors()
 Exception raised:
     Traceback (most recent call last):
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/sagedoctest.py", line
 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[30]>", line 1, in <module>
         w.number_of_factors()###line 99:
     sage: w.number_of_factors()
       File "element.pyx", line 332, in
 sage.structure.element.Element.__getattr__ (sage/structure/element.c:3527)
       File "misc.pyx", line 204, in
 sage.structure.misc.getattr_from_other_class (sage/structure/misc.c:1488)
     AttributeError: 'sage.combinat.words.word_datatypes.FiniteWord_str'
 object has no attribute 'number_of_factors'
 **********************************************************************

 ...

 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 108:
     sage: print w.crochemore_factorization()
 Exception raised:
     Traceback (most recent call last):
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/sagedoctest.py", line
 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[33]>", line 1, in <module>
         print w.crochemore_factorization()###line 108:
     sage: print w.crochemore_factorization()
       File "element.pyx", line 332, in
 sage.structure.element.Element.__getattr__ (sage/structure/element.c:3527)
       File "misc.pyx", line 204, in
 sage.structure.misc.getattr_from_other_class (sage/structure/misc.c:1488)
     AttributeError: 'sage.combinat.words.word_datatypes.FiniteWord_str'
 object has no attribute 'crochemore_factorization'
 **********************************************************************
 File "/Users/slabbe/Applications/sage-5.6.rc0/devel/sage-
 main/sage/combinat/words/finite_word.py", line 113:
     sage: st = w.suffix_tree()
 Exception raised:
     Traceback (most recent call last):
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1231, in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/sagedoctest.py", line
 38, in run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File
 "/Users/slabbe/Applications/sage-5.6.rc0/local/bin/ncadoctest.py", line
 1172, in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_0[34]>", line 1, in <module>
         st = w.suffix_tree()###line 113:
     sage: st = w.suffix_tree()
       File "element.pyx", line 332, in
 sage.structure.element.Element.__getattr__ (sage/structure/element.c:3527)
       File "misc.pyx", line 204, in
 sage.structure.misc.getattr_from_other_class (sage/structure/misc.c:1488)
     AttributeError: 'sage.combinat.words.word_datatypes.FiniteWord_str'
 object has no attribute 'suffix_tree'
 **********************************************************************

 [...]

 **********************************************************************
 120 items had failures:
   40 of  58 in __main__.example_0
    1 of  13 in __main__.example_1
    2 of   5 in __main__.example_10
    3 of   7 in __main__.example_100
    4 of   7 in __main__.example_101
    1 of   4 in __main__.example_102
    5 of   8 in __main__.example_103
    2 of   5 in __main__.example_104
    3 of   6 in __main__.example_105
    6 of  12 in __main__.example_106
    6 of   9 in __main__.example_107
    2 of   5 in __main__.example_109
    3 of  10 in __main__.example_11
   41 of  62 in __main__.example_111
   12 of  19 in __main__.example_112
    3 of   9 in __main__.example_113
    2 of   6 in __main__.example_114
    6 of   9 in __main__.example_117
   10 of  16 in __main__.example_118
    4 of   9 in __main__.example_119
    3 of  10 in __main__.example_12
    3 of   6 in __main__.example_123
    5 of   9 in __main__.example_124
    5 of   9 in __main__.example_125
    9 of  12 in __main__.example_126
    7 of  14 in __main__.example_127
    7 of  12 in __main__.example_128
    3 of   7 in __main__.example_129
    2 of   7 in __main__.example_13
    4 of   8 in __main__.example_130
    6 of  10 in __main__.example_131
    6 of  10 in __main__.example_132
    6 of  10 in __main__.example_133
    6 of  11 in __main__.example_134
    2 of   6 in __main__.example_135
    1 of   4 in __main__.example_136
    2 of   6 in __main__.example_137
    2 of   5 in __main__.example_138
    8 of  16 in __main__.example_139
    6 of  11 in __main__.example_14
    1 of   4 in __main__.example_140
    5 of  10 in __main__.example_141
    4 of  10 in __main__.example_142
   11 of  18 in __main__.example_143
    3 of   7 in __main__.example_149
    4 of   7 in __main__.example_15
    3 of   7 in __main__.example_150
    2 of   5 in __main__.example_151
    2 of   5 in __main__.example_152
    5 of  10 in __main__.example_16
    5 of   8 in __main__.example_17
    4 of   7 in __main__.example_19
    2 of   5 in __main__.example_2
    5 of   8 in __main__.example_22
    1 of   4 in __main__.example_24
    2 of   7 in __main__.example_27
    2 of   7 in __main__.example_28
    1 of   4 in __main__.example_29
    2 of   9 in __main__.example_3
   11 of  17 in __main__.example_30
   18 of  25 in __main__.example_31
    8 of  15 in __main__.example_32
    6 of  15 in __main__.example_33
   12 of  20 in __main__.example_34
   14 of  22 in __main__.example_35
    3 of   8 in __main__.example_36
    1 of   6 in __main__.example_37
    3 of   8 in __main__.example_38
    1 of   5 in __main__.example_39
    2 of   7 in __main__.example_40
    2 of   7 in __main__.example_41
    2 of   7 in __main__.example_42
    2 of   7 in __main__.example_43
    3 of   6 in __main__.example_44
    4 of   7 in __main__.example_45
    4 of   7 in __main__.example_46
    2 of   5 in __main__.example_47
    5 of   8 in __main__.example_48
    9 of  16 in __main__.example_5
    4 of  23 in __main__.example_50
    3 of   6 in __main__.example_51
    9 of  16 in __main__.example_52
    2 of  34 in __main__.example_53
    6 of  10 in __main__.example_54
   13 of  25 in __main__.example_55
   15 of  20 in __main__.example_6
    6 of  10 in __main__.example_60
    2 of   7 in __main__.example_61
   13 of  21 in __main__.example_63
    9 of  15 in __main__.example_64
    5 of   9 in __main__.example_65
    5 of   8 in __main__.example_66
    2 of   6 in __main__.example_67
    8 of  11 in __main__.example_68
    5 of   8 in __main__.example_69
    3 of  13 in __main__.example_7
    6 of   9 in __main__.example_71
    2 of   5 in __main__.example_72
    2 of   5 in __main__.example_74
    1 of   6 in __main__.example_75
    3 of   6 in __main__.example_78
    1 of  10 in __main__.example_79
    9 of  18 in __main__.example_8
    9 of  17 in __main__.example_80
    2 of   7 in __main__.example_81
   10 of  13 in __main__.example_82
    7 of  11 in __main__.example_83
    2 of   5 in __main__.example_84
    2 of   5 in __main__.example_85
    2 of   5 in __main__.example_86
    3 of   6 in __main__.example_87
    1 of   4 in __main__.example_88
    5 of   8 in __main__.example_90
    2 of   5 in __main__.example_91
    2 of   9 in __main__.example_94
    3 of  13 in __main__.example_95
    1 of   6 in __main__.example_96
    3 of   6 in __main__.example_97
    4 of   7 in __main__.example_98
    1 of   4 in __main__.example_99
 ***Test Failed*** 618 failures.
 For whitespace errors, see the file
 /Users/slabbe/.sage//tmp/finite_word_10149.py
          [49.0 s]

 ----------------------------------------------------------------------
 The following tests failed:


         sage -t  "devel/sage-main/sage/combinat/words/finite_word.py"
 Total time for all tests: 49.1 seconds

 }}}

 I could to do more tests now for 3 and 4 above because there are lot more
 files to tests... I will test them and post them on a website because I
 believe it just going to be huge I believe...

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