Como testar uma função hash?
Existe uma maneira de testar a qualidade de uma função hash? Quero ter uma boa propagação quando usado na tabela de hash, e seria ótimo se isso fosse verificável em um teste de unidade.
EDITAR: Para esclarecimento, meu problema foi que eu useilong
valores em Java de tal maneira que o primeiro 32 bits codificou um ID e o segundo 32 bits codificou outro ID. Infelizmente, o hash de valores longos do Java apenas XORs os primeiros 32 bits com os segundos 32 bits, o que, no meu caso, levou a um desempenho muito ruim quando usado em umHashMap
. Portanto, preciso de um hash diferente e gostaria de fazer um teste de unidade para que esse problema não possa mais surgir.