MCPcopy
hub / github.com/redis/redis-py / test_tdigest_merge

Function test_tdigest_merge

tests/test_asyncio/test_bloom.py:419–446  ·  view source on GitHub ↗
(decoded_r: redis.Redis)

Source from the content-addressed store, hash-verified

417@pytest.mark.onlynoncluster
418@pytest.mark.redismod
419async def test_tdigest_merge(decoded_r: redis.Redis):
420 assert await decoded_r.tdigest().create("to-tDigest", 10)
421 assert await decoded_r.tdigest().create("from-tDigest", 10)
422 # insert data-points into sketch
423 assert await decoded_r.tdigest().add("from-tDigest", [1.0] * 10)
424 assert await decoded_r.tdigest().add("to-tDigest", [2.0] * 10)
425 # merge from-tdigest into to-tdigest
426 assert await decoded_r.tdigest().merge("to-tDigest", 1, "from-tDigest")
427 # we should now have 110 weight on to-histogram
428 info = await decoded_r.tdigest().info("to-tDigest")
429 if expected_response_shape(decoded_r) == "legacy_resp3":
430 # Native RESP3 map from the server (no module callback registered for
431 # ``protocol=3`` with ``legacy_responses=True``); keys are title-case.
432 assert 20 == float(info["Merged weight"]) + float(info["Unmerged weight"])
433 else:
434 # ``TDigestInfo`` wrapper exposes snake_case keys for both the
435 # ``legacy_resp2`` and ``unified`` shapes.
436 assert 20 == float(info["merged_weight"]) + float(info["unmerged_weight"])
437 # test override
438 assert await decoded_r.tdigest().create("from-override", 10)
439 assert await decoded_r.tdigest().create("from-override-2", 10)
440 assert await decoded_r.tdigest().add("from-override", [3.0] * 10)
441 assert await decoded_r.tdigest().add("from-override-2", [4.0] * 10)
442 assert await decoded_r.tdigest().merge(
443 "to-tDigest", 2, "from-override", "from-override-2", override=True
444 )
445 assert 3.0 == await decoded_r.tdigest().min("to-tDigest")
446 assert 4.0 == await decoded_r.tdigest().max("to-tDigest")
447
448
449@pytest.mark.experimental

Callers

nothing calls this directly

Calls 8

expected_response_shapeFunction · 0.90
minMethod · 0.80
maxMethod · 0.80
createMethod · 0.45
tdigestMethod · 0.45
addMethod · 0.45
mergeMethod · 0.45
infoMethod · 0.45

Tested by

no test coverage detected