I'm after information so I might better understand why "**.sort{[ -it.x, -it.y]}*" (*vs "*.sort{[ it.x, it.y]}"*) has no effect on Double and Float values in this particular case (*both sorts return identical ordered list*. Not so when using Integer or BigDecimal values).
Mainly working with Python (*but I have no choice to use Groovy in this case, which is kinda alien to me*). As such I prefer "**.sort{[it.x, it.y]}*" over "**.sort{ a, b -> a.x == b.x ? a.y <=> b.y : a.x <=> b.x }*" ... + The latter might, for all I know at this moment, exhibit the same behavior when it comes to Double or Float values.