public void ToStringImplementation() { var segment1 = new Segment("E", false); var segment2 = new Segment("+", true); var segment3 = new Segment("Number", true); var production = new Production(segment1, ImmutableArray.Create(segment1, segment2, segment3)); var item0 = new ParseItem(production, 0); var item1 = new ParseItem(production, 1); var item2 = new ParseItem(production, 2); var item3 = new ParseItem(production, 3); Assert.That(item0.ToString(), Is.EqualTo("[<E> -> \u2022 <E> + Number]")); Assert.That(item1.ToString(), Is.EqualTo("[<E> -> <E> \u2022 + Number]")); Assert.That(item2.ToString(), Is.EqualTo("[<E> -> <E> + \u2022 Number]")); Assert.That(item3.ToString(), Is.EqualTo("[<E> -> <E> + Number \u2022]")); }