This patch is not applying for me. Can you squash all of your patches into one commit (use git rebase -i master)? Also, things would be easier if you pushed up to a github repository.
Now that it works, I can comment on the actual code. In [2]: a = PrimeField(5) In [4]: a.elements() Out[4]: [0, 1, 2, 3, 4] In [5]: a.multiplicative_inverse(4) # I think this should return 4, not -1. Out[5]: -1 In [7]: 4 in a # This ought to work (__contains__) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /Users/aaronmeurer/Documents/python/sympy/sympy/<ipython console> in <module>() TypeError: argument of type 'instance' is not iterable In [9]: a = PrimeField(4) ValueError: Invalid Argument Use more descriptive messages than "Invalid Argument" for your errors. For example, for this one, you might use "Argument of PrimeField must be a prime number (received 4)", or something similar. In [22]: a Out[22]: <sympy.abstractalgebra.finitefield.PrimeField instance at 0x175ca08> Like David said, please include some kind of __str__ or __repr__ method so this prints nicer. In your doctests, and elsewhere, use one space around an =, such as "gf7 = PrimeField(7)". I think this is almost ready. Aaron Meurer On Apr 16, 2010, at 4:29 PM, Kasun Samarasinghe wrote: > hi aaron, > > i managed to fix the doctest problem, here is the patch for that part only. > > kasun > > On Sat, Apr 17, 2010 at 12:12 AM, Kasun Samarasinghe > <[email protected]> wrote: > I have fixed the nested problem and white spaces problem. In my machine it > passes the tests. > > here __init__.patch is the import statement in sympy/__init__.py > > thank you, > kasun > > > On Fri, Apr 16, 2010 at 11:27 PM, Kasun Samarasinghe > <[email protected]> wrote: > also can you please have a look at my doctests, since it fails. > > thanks > > > On Fri, Apr 16, 2010 at 11:20 PM, Kasun Samarasinghe > <[email protected]> wrote: > hi aaron > > will it convert the tab into four spaces if I run the strip utility? > > thanks > kasun > > > > > On Fri, Apr 16, 2010 at 10:20 PM, Aaron S. Meurer <[email protected]> wrote: > Sorry, it still doesn't work for me. The problem is that you have > abstractalgebra nested twice. Also, I think you might need to add something > to the main sympy/__init__.py (assuming we want this imported with from sympy > import *; do we?). > > The ./bin/strip_whitespace utility will help with the other failure. Setup > your text editor to use 4 spaces instead of tabs: > > ________________________________________________________________________________ > > /users/aaronmeurer/documents/python/sympy/sympy/sympy/abstractalgebra/abstractalgebra/test_primefield.py > > File > "/users/aaronmeurer/documents/python/sympy/sympy/sympy/abstractalgebra/abstractalgebra/test_primefield.py", > line 1, in <module> > from sympy.abstractalgebra.finitefield import PrimeField > ImportError: No module named abstractalgebra.finitefield > > ________________________________________________________________________________ > __ sympy/utilities/tests/test_code_quality.py:test_whitespace_and_exceptions > ___ > File > "/users/aaronmeurer/documents/python/sympy/sympy/sympy/utilities/tests/test_code_quality.py", > line 97, in test_whitespace_and_exceptions > check_directory_tree(SYMPY_PATH, test, exclude) > File > "/users/aaronmeurer/documents/python/sympy/sympy/sympy/utilities/tests/test_code_quality.py", > line 58, in check_directory_tree > file_check(fname) > File > "/users/aaronmeurer/documents/python/sympy/sympy/sympy/utilities/tests/test_code_quality.py", > line 82, in test > assert False, message_tabs % (fname, idx+1) > AssertionError: File contains tabs instead of spaces: > /users/aaronmeurer/documents/python/sympy/sympy/sympy/abstractalgebra/abstractalgebra/finitefield.py, > line 11. > > Aaron Meurer > On Apr 15, 2010, at 5:49 PM, Kasun Samarasinghe wrote: > >> hi aaron, >> >> I managed to make it passed test, please give me the comment. attached the >> patch with this >> >> thank you >> kasun >> >> On Fri, Apr 16, 2010 at 12:31 AM, Ronan Lamy <[email protected]> wrote: >> Le jeudi 15 avril 2010 à 13:46 -0600, Aaron S. Meurer a écrit : >> > - I think PrimeField should subclass from Expr or Basic (though I could be >> > wrong on this one). >> > >> No, it should not. Instances of PrimeField are equivalent to classes >> like Integer or Rational. I think sympy is not quite ready for this >> yet. >> In the current model, PrimeField "should" be a metaclass and can only >> subclass BasicType (which is empty). It is its instances which "should" >> be subclasses of Basic. And yes, this would probably be very messy. >> >> So, it is reasonable to implement finite fields outside the main >> hierarchy (note that polynomials are also outside the main hierarchy, >> ultimately for the same reason). When sympy grows ways to manipulate >> types, they can be brought back into the fold. >> >> > - How is this different from the GF >> > implementation in polys? Should this rather just be providing a user >> > interface to that? >> >> I think it's the opposite: polys should interface with the generic >> implementation. Ultimately, the implementations should be merged, but >> the code should move out of polys and into the new module. >> >> Ronan >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" 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/sympy?hl=en. >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" 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/sympy?hl=en. >> <0001-Finite-Field-Implementation-Prime-Field-Only.patch> > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" 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/sympy?hl=en. > > > > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" 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/sympy?hl=en. > <doctestfix.patch> -- You received this message because you are subscribed to the Google Groups "sympy" 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/sympy?hl=en.
