static void TestData(CanHazImmutable data, string caption) { Assert.False(data.Queue.IsEmpty); data.Queue = data.Queue.Dequeue(out var val); Assert.Equal(1, val); Assert.False(data.Queue.IsEmpty); data.Queue = data.Queue.Dequeue(out val); Assert.Equal(2, val); Assert.True(data.Queue.IsEmpty); Assert.Equal(2, data.Set.Count); //, caption + ":Bag.Count"); Assert.Contains("abc", data.Set); //, caption + ":Bag - try 1"); Assert.Contains("def", data.Set); //, caption + ":Bag - try 2"); Assert.Equal(2, data.Dictionary.Count); //, caption + ":Dictionary.Count"); Assert.True(data.Dictionary.TryGetValue(1, out string s)); //, caption + ":Dictionary - try 1"); Assert.Equal("abc", s); //, caption + ":Dictionary - val 1"); Assert.True(data.Dictionary.TryGetValue(2, out s)); //, caption + ":Dictionary - try 2"); Assert.Equal("def", s); //, caption + ":Dictionary - val 2"); Assert.False(data.Stack.IsEmpty); data.Stack = data.Stack.Pop(out val); Assert.Equal(2, val); Assert.False(data.Stack.IsEmpty); data.Stack = data.Stack.Pop(out val); Assert.Equal(1, val); Assert.True(data.Stack.IsEmpty); Assert.Equal(2, data.List.Count); Assert.Equal(42, data.List[0]); Assert.Equal(43, data.List[1]); }
static CanHazImmutable CreateImmutableData() { var data = new CanHazImmutable(); data.Queue = data.Queue.Enqueue(1); data.Queue = data.Queue.Enqueue(2); data.Set = data.Set.Add("abc"); data.Set = data.Set.Add("def"); data.Dictionary = data.Dictionary.SetItem(1, "abc"); data.Dictionary = data.Dictionary.SetItem(2, "def"); data.Stack = data.Stack.Push(1); data.Stack = data.Stack.Push(2); data.List = data.List.Add(42); data.List = data.List.Add(43); return(data); }