Skip to content
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

Unit test ExampleOrderedQuery_ThenByDescending fails on golang-1.19.2 #113

Open
sdgathman opened this issue Nov 23, 2022 · 6 comments
Open

Comments

@sdgathman
Copy link

      testing: github.com/ahmetb/go-linq
github.com/ahmetb/go-linq
--- FAIL: ExampleOrderedQuery_ThenByDescending (0.00s)
got:
apPLe
apple
apPLE
APple
orange
baNanA
ORANGE
BAnana
want:
apPLe
apPLE
apple
APple
orange
baNanA
ORANGE
BAnana
FAIL
exit status 1
FAIL	github.com/ahmetb/go-linq	0.021s
@sdgathman
Copy link
Author

Passes on golang-1.18

@ahmetb
Copy link
Owner

ahmetb commented Nov 23, 2022

Interesting. If you wanna debug, I'm open to patches.

@neilalexander
Copy link

Probably related to the change in sorting algorithm to pattern-defeating quicksort in Go 1.19.

https://tip.golang.org/doc/go1.19#sort

@sdgathman
Copy link
Author

I'm not a go programmer, but you'd think there would be a sort_unstable() to get the faster algorithm rather than breaking a bunch of things that depend on stability.

@sdgathman
Copy link
Author

Since this package seems to be about linking to case insensitive libraries, the result might be actually valid. But the verbatim check is too strict for an unstable sort. How about running the output through an undependent stable sort (e.g. unix sort program with case insensitive option) and check that the result is unchanged? Would that be valid?

@neilalexander
Copy link

I'm not a go programmer, but you'd think there would be a sort_unstable() to get the faster algorithm rather than breaking a bunch of things that depend on stability.

There is probably already some difference between sort.Sort and sort.Stable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants