public void RListTest() { RList rl = new RList(); rl.Mode.Should().Be(RMode.List); rl.Should().BeEmpty(); var e = rl.GetEnumerator(); e.Should().NotBeNull(); e.MoveNext().Should().BeFalse(); RObject rv = new RVector <RNumber>(RMode.Numeric, 1); var rs = new RString("abc"); rl.Add(rs, rv); rl.Should().HaveCount(1); var e1 = rl.Keys.GetEnumerator(); e1.MoveNext(); e1.Current.Should().Be(rs); e1.Current.Should().Be(new RString("abc")); var e2 = rl.Values.GetEnumerator(); e2.MoveNext(); e2.Current.Should().Be(rv); rl.ContainsKey(rs).Should().BeTrue(); rl.ContainsKey(new RString("abc")).Should().BeTrue(); rl.Contains(new KeyValuePair <RString, RObject>(rs, rv)).Should().BeTrue(); var arr = new KeyValuePair <RString, RObject> [2]; rl.CopyTo(arr, 1); arr[1].Key.Should().Be(rs); arr[1].Value.Should().Be(rv); rl[rs].Should().Be(rv); rl.IsReadOnly.Should().BeFalse(); RObject u; rl.TryGetValue(rs, out u).Should().BeTrue(); var en = rl.GetEnumerator(); en.Should().NotBeNull(); en.MoveNext().Should().BeTrue(); en.Current.Key.Should().Be(rs); en.Current.Value.Should().Be(rv); en.MoveNext().Should().BeFalse(); IEnumerator <RObject> en1 = ((IEnumerable <RObject>)rl).GetEnumerator(); en1.Should().NotBeNull(); en1.MoveNext().Should().BeTrue(); en1.Current.Should().Be(rv); en1.MoveNext().Should().BeFalse(); IEnumerator <KeyValuePair <RString, RObject> > en2 = ((IEnumerable <KeyValuePair <RString, RObject> >)rl).GetEnumerator(); en2.Should().NotBeNull(); en2.MoveNext().Should().BeTrue(); en2.Current.Key.Should().Be(rs); en2.Current.Value.Should().Be(rv); en2.MoveNext().Should().BeFalse(); IEnumerator en3 = ((IEnumerable)rl).GetEnumerator(); en3.Should().NotBeNull(); en3.MoveNext().Should().BeTrue(); en3.MoveNext().Should().BeFalse(); rl.Remove(rs).Should().BeTrue(); rl.Should().BeEmpty(); rl.ContainsKey(rs).Should().BeFalse(); rl.Add(new KeyValuePair <RString, RObject>(new RString("x"), new RLogical(true))); rl.Length.Should().Be(1); rl.Count.Should().Be(1); rl.Clear(); rl.Length.Should().Be(0); rl.Count.Should().Be(0); rl.TryGetValue(rs, out u).Should().BeFalse(); u.Should().BeNull(); }