Age | Commit message (Collapse) | Author |
|
I started fidgeting with another one of the tests breaking because of the
estimator not being deterministic, and then decided to do this another way.
This adds `seeded` and `seeded_compact` constructors to the estimator which are
used in tests to override the LFU. These are hidden behind `cfg(test)`. The
`random_status` field of the UFO object is also overridden with the same seeds
as used for the seeded LFU.
These make the tests pass consistently without requiring further monkeying.
|
|
Previously the test would fail because the item evicted may be the entry (4,4,1)
failing admission. I adjusted the weights so that all weights for items besides
the one we want moved to the main cache are equal and the cache can only hold
three. The test then checks that 1 is moved to the main, the evicted key is
gone, and the other two are present.
|
|
|
|
|
|
The TinyLFU test was failing for changes unrelated to anything in the tinyufo
crate. This changes the test to stop that! What was occurring was expected
behavior, so the test is what's changing instead of any internal logic.
What was happening were hash collisions in the bloom filter used by the
estimator. Instead of asserting that we'd always start counting from 0, we now
allow for this in the test by `get()`ing first, then comparing relative
values. For the final comparisons, we check that values are greater-than or
equal-to their lower bound as determined by the number of `incr()`s we called on
their keys.
|
|
|
|
Add more cache crates to compare with.
Co-authored-by: Arthur Silva <[email protected]>
|
|
This option makes it more memory efficient but a bit slower.
|
|
The vast majority of these are redundant imports.
|
|
I think ahash has this bug where the hash of &u64 and u64 are different
under nightly build. This works around that.
|
|
Co-authored-by: Andrew Hauck <[email protected]>
Co-authored-by: Edward Wang <[email protected]>
|