public virtual void TestSubPath() { FacetLabel p = new FacetLabel("hi", "there", "man"); Assert.AreEqual(p.Length, 3); FacetLabel p1 = p.Subpath(2); Assert.AreEqual(2, p1.Length); Assert.AreEqual("FacetLabel: [hi, there]", p1.ToString()); p1 = p.Subpath(1); Assert.AreEqual(1, p1.Length); Assert.AreEqual("FacetLabel: [hi]", p1.ToString()); p1 = p.Subpath(0); Assert.AreEqual(0, p1.Length); Assert.AreEqual("FacetLabel: []", p1.ToString()); // with all the following lengths, the prefix should be the whole path int[] lengths = new int[] { 3, -1, 4 }; for (int i = 0; i < lengths.Length; i++) { p1 = p.Subpath(lengths[i]); Assert.AreEqual(3, p1.Length); Assert.AreEqual("FacetLabel: [hi, there, man]", p1.ToString()); Assert.AreEqual(p, p1); } }