{"action":"created","issue":{"url":"https://api.github.com/repos/Nemocas/AbstractAlgebra.jl/issues/312","repository_url":"https://api.github.com/repos/Nemocas/AbstractAlgebra.jl","labels_url":"https://api.github.com/repos/Nemocas/AbstractAlgebra.jl/issues/312/labels{/name}","comments_url":"https://api.github.com/repos/Nemocas/AbstractAlgebra.jl/issues/312/comments","events_url":"https://api.github.com/repos/Nemocas/AbstractAlgebra.jl/issues/312/events","html_url":"https://github.com/Nemocas/AbstractAlgebra.jl/issues/312","id":448109661,"node_id":"MDU6SXNzdWU0NDgxMDk2NjE=","number":312,"title":"provide interface-conformance testsets","user":{"login":"kalmarek","id":1666118,"node_id":"MDQ6VXNlcjE2NjYxMTg=","avatar_url":"https://avatars1.githubusercontent.com/u/1666118?v=4","gravatar_id":"","url":"https://api.github.com/users/kalmarek","html_url":"https://github.com/kalmarek","followers_url":"https://api.github.com/users/kalmarek/followers","following_url":"https://api.github.com/users/kalmarek/following{/other_user}","gists_url":"https://api.github.com/users/kalmarek/gists{/gist_id}","starred_url":"https://api.github.com/users/kalmarek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kalmarek/subscriptions","organizations_url":"https://api.github.com/users/kalmarek/orgs","repos_url":"https://api.github.com/users/kalmarek/repos","events_url":"https://api.github.com/users/kalmarek/events{/privacy}","received_events_url":"https://api.github.com/users/kalmarek/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":39,"created_at":"2019-05-24T11:00:06Z","updated_at":"2019-10-07T19:48:26Z","closed_at":null,"author_association":"NONE","body":"I'm moving some of my old code to AbstractAlgebra ring interface: @wbhart (or whoever did this) thanks so much for taking time to define and describe it.\r\n\r\nIt would be great if we could provide testsuite for each defined interface. Something like:\r\n```julia\r\ntest_ring_interace_conformance(x,y) # for non-parametrized rings (x,y are two distinct elements)\r\ntest_ring_interface_conformance([x_T, y_T], [x_S, y_S]) # for parametrized rings: pairs of ring elements parametrized by T or S\r\n```\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/Nemocas/AbstractAlgebra.jl/issues/comments/539174553","html_url":"https://github.com/Nemocas/AbstractAlgebra.jl/issues/312#issuecomment-539174553","issue_url":"https://api.github.com/repos/Nemocas/AbstractAlgebra.jl/issues/312","id":539174553,"node_id":"MDEyOklzc3VlQ29tbWVudDUzOTE3NDU1Mw==","user":{"login":"kalmarek","id":1666118,"node_id":"MDQ6VXNlcjE2NjYxMTg=","avatar_url":"https://avatars1.githubusercontent.com/u/1666118?v=4","gravatar_id":"","url":"https://api.github.com/users/kalmarek","html_url":"https://github.com/kalmarek","followers_url":"https://api.github.com/users/kalmarek/followers","following_url":"https://api.github.com/users/kalmarek/following{/other_user}","gists_url":"https://api.github.com/users/kalmarek/gists{/gist_id}","starred_url":"https://api.github.com/users/kalmarek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kalmarek/subscriptions","organizations_url":"https://api.github.com/users/kalmarek/orgs","repos_url":"https://api.github.com/users/kalmarek/repos","events_url":"https://api.github.com/users/kalmarek/events{/privacy}","received_events_url":"https://api.github.com/users/kalmarek/received_events","type":"User","site_admin":false},"created_at":"2019-10-07T19:48:26Z","updated_at":"2019-10-07T19:48:26Z","author_association":"NONE","body":"@fieker \r\nabout the returned type by `dim`, `order`: yes, we had a discussion (with @thofma, if I remember correctly?!) when I worked on this code and this was the solution we came up with, as one of the reasonable things to do. Problem with returning the integer of type defining `PermGroup` was that you couldn't compute `order(PermGroup(Int8(7)))`, those pesky small Ints are really small... ;)\r\n\r\nby safe defaults I mean that e.g. our `ZZ` is true integer and this is what user will see, and it's a completely ok.\r\n\r\n> Do you expect the documentation to spell out that intermediate results\r\ncan be larger than the result or the input? Do you expect, in AA, to\r\nonly see the 1st version? Or to code in such a way that internally\r\nBigInt can be used and translations happen?\r\n\r\n1) I don't expect, but it would be definitely user friendly, especially if overflow is likely even for middle-size numbers;\r\n2) this is very much function dependent; e.g. in `dim` we made the decision that the operation will likely overflow, therefore we provide the one that works. Case in point: factorial vs. ^; the first throws, as overflow is very likely, the second silently overflows. And of course I'd try my best to provide one that will work with user supplied (safe or not, ringy or not) types.\r\n\r\nI think that the policy of not overflowing at any cost is somehow defeating the purpose of generic functions, as even a function that doubles its argument mus pass through BigInt: `f(x:T) where T = ( y::T = 2big(x); y)`. And I understand that we probably care more about correctness than average julia and I'd have nothing against e.g. making AA.zz defaulting to `SafeInts` to avoid accidental overflows, but this is an issue I am very much disinterested in. \r\n\r\nIn Oscar alone there are already four types of mathematical Integers: BigInts, fmpzs, pm_Integers and n_Zs from Singular. sooner or later somebody will write GAPInts as well and it's only natural, that when `Polymake` gives You an array of its integers you call `perm` on it and Your algorithm runs further. And it's good to be prepared for this, even though we will not be able predict all the possible interactions between components. \r\n\r\n> ahh well, we are planning to meet for perms anyway\r\n\r\nI'd prefer not to bring the actual issue which, if somebody still remembers ;), is the conformance testing (and the asymmetry of generic `==` for Rings) during the groups meeting and rather postpone it until the next year, at the request of @wbhart"}}
{"actor":{"display_login":"kalmarek"}}