Last active
December 11, 2015 16:38
-
-
Save extemporalgenome/4629151 to your computer and use it in GitHub Desktop.
Odd behavior of golang's sort.Sort implementation.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"github.com/extemporalgenome/sortutil" | |
"os" | |
"sort" | |
) | |
func main() { | |
sortutil.Analyze(os.Stdout, true, sort.Sort) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################# | |
### [ OK ] Ascending ### | |
################################# | |
(abcdefghijklmnopqrstuvwxyz).Len() [26] | |
(AbcdefghijklmNopqrstuvwxyz).Less( 0, 13) [true] | |
(AbcdefghijklmNopqrstuvwxyz).Swap( 0, 13) [NbcdefghijklmAopqrstuvwxyz] | |
(NbcdefghijklmaopqrstuvwxyZ).Less(25, 0) [false] | |
(NbcdefghijklmAopqrstuvwxyz).Less( 0, 13) [false] | |
(NBcdefghijklmaopqrstuvwxyz).Less( 1, 0) [true] | |
(NbCdefghijklmaopqrstuvwxyz).Less( 2, 0) [true] | |
(NbcDefghijklmaopqrstuvwxyz).Less( 3, 0) [true] | |
(NbcdEfghijklmaopqrstuvwxyz).Less( 4, 0) [true] | |
(NbcdeFghijklmaopqrstuvwxyz).Less( 5, 0) [true] | |
(NbcdefGhijklmaopqrstuvwxyz).Less( 6, 0) [true] | |
(NbcdefgHijklmaopqrstuvwxyz).Less( 7, 0) [true] | |
(NbcdefghIjklmaopqrstuvwxyz).Less( 8, 0) [true] | |
(NbcdefghiJklmaopqrstuvwxyz).Less( 9, 0) [true] | |
(NbcdefghijKlmaopqrstuvwxyz).Less(10, 0) [true] | |
(NbcdefghijkLmaopqrstuvwxyz).Less(11, 0) [true] | |
(NbcdefghijklMaopqrstuvwxyz).Less(12, 0) [true] | |
(NbcdefghijklmAopqrstuvwxyz).Less(13, 0) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrstuvwxyZ).Less( 0, 25) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrstuvwxYz).Less( 0, 24) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrstuvwXyz).Less( 0, 23) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrstuvWxyz).Less( 0, 22) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrstuVwxyz).Less( 0, 21) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrstUvwxyz).Less( 0, 20) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrsTuvwxyz).Less( 0, 19) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqrStuvwxyz).Less( 0, 18) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopqRstuvwxyz).Less( 0, 17) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaopQrstuvwxyz).Less( 0, 16) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaoPqrstuvwxyz).Less( 0, 15) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less(14, 0) [false] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmaOpqrstuvwxyz).Less( 0, 14) [true] | |
(NbcdefghijklmAopqrstuvwxyz).Swap( 0, 13) [AbcdefghijklmNopqrstuvwxyz] | |
(abcdefghijklmnOpqrstUvwxyz).Less(14, 20) [true] | |
(abcdefghijklmnOpqrstUvwxyz).Swap(14, 20) [abcdefghijklmnUpqrstOvwxyz] | |
(abcdefghijklmnUpqrstovwxyZ).Less(25, 14) [false] | |
(abcdefghijklmnUpqrstOvwxyz).Less(14, 20) [false] | |
(abcdefghijklmnUPqrstovwxyz).Less(15, 14) [true] | |
(abcdefghijklmnUpQrstovwxyz).Less(16, 14) [true] | |
(abcdefghijklmnUpqRstovwxyz).Less(17, 14) [true] | |
(abcdefghijklmnUpqrStovwxyz).Less(18, 14) [true] | |
(abcdefghijklmnUpqrsTovwxyz).Less(19, 14) [true] | |
(abcdefghijklmnUpqrstOvwxyz).Less(20, 14) [true] | |
(abcdefghijklmnUpqrstoVwxyz).Less(21, 14) [false] | |
(abcdefghijklmnUpqrstoVwxyz).Less(14, 21) [true] | |
(abcdefghijklmnUpqrstovwxyZ).Less(14, 25) [true] | |
(abcdefghijklmnUpqrstoVwxyz).Less(21, 14) [false] | |
(abcdefghijklmnUpqrstoVwxyz).Less(14, 21) [true] | |
(abcdefghijklmnUpqrstovwxYz).Less(14, 24) [true] | |
(abcdefghijklmnUpqrstoVwxyz).Less(21, 14) [false] | |
(abcdefghijklmnUpqrstoVwxyz).Less(14, 21) [true] | |
(abcdefghijklmnUpqrstovwXyz).Less(14, 23) [true] | |
(abcdefghijklmnUpqrstoVwxyz).Less(21, 14) [false] | |
(abcdefghijklmnUpqrstoVwxyz).Less(14, 21) [true] | |
(abcdefghijklmnUpqrstovWxyz).Less(14, 22) [true] | |
(abcdefghijklmnUpqrstoVwxyz).Less(21, 14) [false] | |
(abcdefghijklmnUpqrstoVwxyz).Less(14, 21) [true] | |
(abcdefghijklmnUpqrstoVwxyz).Less(14, 21) [true] | |
(abcdefghijklmnUpqrstOvwxyz).Swap(14, 20) [abcdefghijklmnOpqrstUvwxyz] | |
(abcdefghijklmnopqrstuVWxyz).Less(22, 21) [false] | |
(abcdefghijklmnopqrstuvWXyz).Less(23, 22) [false] | |
(abcdefghijklmnopqrstuvwXYz).Less(24, 23) [false] | |
(abcdefghijklmnopqrstuvwxYZ).Less(25, 24) [false] | |
(abcdefghijklmnOPqrstuvwxyz).Less(15, 14) [false] | |
(abcdefghijklmnoPQrstuvwxyz).Less(16, 15) [false] | |
(abcdefghijklmnopQRstuvwxyz).Less(17, 16) [false] | |
(abcdefghijklmnopqRStuvwxyz).Less(18, 17) [false] | |
(abcdefghijklmnopqrSTuvwxyz).Less(19, 18) [false] | |
(AbcdefGhijklmnopqrstuvwxyz).Less( 0, 6) [true] | |
(AbcdefGhijklmnopqrstuvwxyz).Swap( 0, 6) [GbcdefAhijklmnopqrstuvwxyz] | |
(GbcdefahijklMnopqrstuvwxyz).Less(12, 0) [false] | |
(GbcdefAhijklmnopqrstuvwxyz).Less( 0, 6) [false] | |
(GBcdefahijklmnopqrstuvwxyz).Less( 1, 0) [true] | |
(GbCdefahijklmnopqrstuvwxyz).Less( 2, 0) [true] | |
(GbcDefahijklmnopqrstuvwxyz).Less( 3, 0) [true] | |
(GbcdEfahijklmnopqrstuvwxyz).Less( 4, 0) [true] | |
(GbcdeFahijklmnopqrstuvwxyz).Less( 5, 0) [true] | |
(GbcdefAhijklmnopqrstuvwxyz).Less( 6, 0) [true] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 7, 0) [false] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 0, 7) [true] | |
(GbcdefahijklMnopqrstuvwxyz).Less( 0, 12) [true] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 7, 0) [false] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 0, 7) [true] | |
(GbcdefahijkLmnopqrstuvwxyz).Less( 0, 11) [true] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 7, 0) [false] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 0, 7) [true] | |
(GbcdefahijKlmnopqrstuvwxyz).Less( 0, 10) [true] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 7, 0) [false] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 0, 7) [true] | |
(GbcdefahiJklmnopqrstuvwxyz).Less( 0, 9) [true] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 7, 0) [false] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 0, 7) [true] | |
(GbcdefahIjklmnopqrstuvwxyz).Less( 0, 8) [true] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 7, 0) [false] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 0, 7) [true] | |
(GbcdefaHijklmnopqrstuvwxyz).Less( 0, 7) [true] | |
(GbcdefAhijklmnopqrstuvwxyz).Swap( 0, 6) [AbcdefGhijklmnopqrstuvwxyz] | |
(abcdefgHIjklmnopqrstuvwxyz).Less( 8, 7) [false] | |
(abcdefghIJklmnopqrstuvwxyz).Less( 9, 8) [false] | |
(abcdefghiJKlmnopqrstuvwxyz).Less(10, 9) [false] | |
(abcdefghijKLmnopqrstuvwxyz).Less(11, 10) [false] | |
(abcdefghijkLMnopqrstuvwxyz).Less(12, 11) [false] | |
(ABcdefghijklmnopqrstuvwxyz).Less( 1, 0) [false] | |
(aBCdefghijklmnopqrstuvwxyz).Less( 2, 1) [false] | |
(abCDefghijklmnopqrstuvwxyz).Less( 3, 2) [false] | |
(abcDEfghijklmnopqrstuvwxyz).Less( 4, 3) [false] | |
(abcdEFghijklmnopqrstuvwxyz).Less( 5, 4) [false] | |
Calls: {Len:1 Less:122 Swap:6} | |
Less: {Min:3 Max:80 Mean:4.6923075 Std:17.449509} | |
Swap: {Min:0 Max:4 Mean:0.23076923 Std:1.0348942} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment