public void BasicLifecycle() { var dict = new MultiVersionDictionary <V>(); V v; V v1 = new V(1); Assert.IsFalse(dict.TryGetValue("A", 0, out _)); Assert.IsFalse(dict.TryRemove("A", 0)); Assert.IsTrue(dict.AddOrUpdate("A", 1, v1)); Assert.IsFalse(dict.TryGetValue("A", 0, out _)); Assert.IsTrue(dict.TryGetValue("A", 1, out v)); Assert.AreEqual(v1, v); Assert.IsTrue(dict.TryGetValue("A", 2, out v)); Assert.AreEqual(v1, v); Assert.IsFalse(dict.TryRemove("A", 0)); Assert.IsTrue(dict.TryRemove("A", 2)); Assert.IsFalse(dict.TryGetValue("A", 0, out _)); Assert.IsTrue(dict.TryGetValue("A", 1, out v)); Assert.AreEqual(v1, v); Assert.IsFalse(dict.TryGetValue("A", 2, out v)); }