Spaces:
Runtime error
Runtime error
| from chromadb.utils.rendezvous_hash import assign, murmur3hasher | |
| def test_rendezvous_hash() -> None: | |
| # Tests the assign works as expected | |
| members = ["a", "b", "c"] | |
| key = "key" | |
| def mock_hasher(member: str, key: str) -> int: | |
| return members.index(member) # Highest index wins | |
| assert assign(key, members, mock_hasher) == "c" | |
| def test_even_distribution() -> None: | |
| member_count = 10 | |
| tolerance = 25 | |
| nodes = [str(i) for i in range(member_count)] | |
| # Test if keys are evenly distributed across nodes | |
| key_distribution = {node: 0 for node in nodes} | |
| num_keys = 1000 | |
| for i in range(num_keys): | |
| key = f"key_{i}" | |
| node = assign(key, nodes, murmur3hasher) | |
| key_distribution[node] += 1 | |
| # Check if keys are somewhat evenly distributed | |
| for node in nodes: | |
| assert abs(key_distribution[node] - num_keys / len(nodes)) < tolerance | |