Extracted a piece of logic from QHashCapacities and DHashCapacities as a static method
Throw HashOverflowException instead of OutOfMemoryError in QHashCapacities and QHashCapacities
Removed unused method in MutableDHash
Extracted HashWithoutRemovedSlots
Added Scaler tests forgotten in f4dff68 commit
Simplified *Capacities behaviour when size is close to Integer.MAX_VALUE, because it is just expected
Fixed MutableDHash.ensureCapacity() logic: should try to shrink if the given size is greater than maxSize (grow triggering size)
Fixed bug in HashConfigWrapper -- didn't consider minLoad = 0.0
Made Scaler, hence HashConfigWrapper inversion-consistent; MutableDHash.maxSize should always be greater or equal to the actual size
Fixed MutableDHash.tryRehashIfTooFewFreeSlots() -- should rehash to DHash capacity
modCount increment should go before actual changes
Wrap clear() with concurrent modification check in MutableDHashCharShortMapGO as in MutableCharDHashSetSO
Benchmarks: simplified keyDistance computation in LHash shift deletion and RHood
Set compilation encoding in buildSrc/build.gradle for building on systems that's default encoding is not UTF-8 (non-ASCII characters appeared in buildSrc project from 50d5a90 commit)
Spelling & typos
Fixed bug in Cursor implementations: curKey wasn't cleared after unsuccessful moveNext()
Siplified Cursor.moveNext() and Iterator.next() implementations a bit: don't copy values array beforehand
Generalized MethodGenerator instantiation by Method
Optimized some JPSG hotspots
Parallelized JPSG using ForkJoinPool