sclass Test_ProbabilisticList { MultiSetMap a = multiSetMap_outerDescTreeMap_innerBetterLinkedHashSet(); new ProbabilisticList b; int nProbabilities = 4; int nObjects = 10; int n = 1000; WithProbability makeEntry() { ret withProbability( (double) random(nProbabilities), str(charPlus('A', random(nObjects))); } run { repeat n { // add one WithProbability e = makeEntry(); a.remove(a.keyForValue(e!), e!); a.put(e.probability(), e!); b.add(e); // automatically overwrites the old probability // remove one e = makeEntry(); // probability doesn't matter a.remove(a.keyForValue(e!), e!); b.remove(e); L aValues = asList(a.allValues()); print(takeFirst(10, aValues); assertEquals(aValues, asList(b.iterator()); } } } svoid test_ProbabilisticList() { new Test_ProbabilisticList().run(); }