-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix regression in group constructors for matrix groups #1077
Conversation
f45c78c
to
ff89cab
Compare
Current coverage is 54.47% (diff: 100%)
|
The codecov/patch status is marked as failing because this PR adds code lines, and only 25% of them have coverage... No surprise, as the others are not yet used. Now, I see three options to deal with that:
Personally, I'd favor option 4, as I think it's silly to have these constructors in the first place. However, that might break some people's code, so 3 is more realistic. What do others think? @hulpke @frankluebeck @stevelinton You've been around a long time, perhaps you have some insights and / or oppinions on this? For reference, I just checked, and the |
The patch itself of course looks fine. On the subject of constructor cases, I don't have any strong opinions. |
I suspect the cyclic/quaternion matrix constructors wre to have some easy test cases. I would not have bothered to implement them, but I'm reluctant to remove functionality that is in itself not causing problems. I'd be happy to remove the unused subcases -- for me actual code behavior overrides never implemented manual promises. So my choice would be 3. |
@hulpke Yeah, I thought about it some more since writing my last comment, and came to the conclusion that it's always bad to break existing code, so I now also favor option 3. Though I still wonder whether to remove it from the manual, and just keep the code around, with a brief comment explaining that they are just there for backwards compatibility? |
2f99cf4
to
cee8c18
Compare
This partially reverts commit 38c80a9. Also add some comments and tests.
This fixes the regression reported by @alex-konovalov
(The fact that the manual examples uncovered this motivated me to submit issue #1076).
I still find these constructors a bit weird and arbitrary. Section 50.1 says that you can spcecify a ground field for matrix groups. Fine, but there in realit only methods for cyclic groups and quaternion groups, but not for all the others (abelian, extraspecial, elementary abelian, free abelian, Mathieu group). Also you can specify a dimension (and even if you could, then in general that would of course not define a unique representation).
Anyway, those are not excuses for breaking something :-).