/// <summary>
 /// Compare the SimplePofPath with another object to determine equality.
 /// </summary>
 /// <remarks>
 /// Two SimplePofPath objects are considered equal iff their indices are
 /// equal.
 /// </remarks>
 /// <param name="o">
 /// The object to compare with.
 /// </param>
 /// <returns>
 /// <c>true</c> iff this SimplePofPath and the passed object are equivalent.
 /// </returns>
 public override bool Equals(Object o)
 {
     if (this == o)
     {
         return(true);
     }
     if (o is SimplePofPath)
     {
         SimplePofPath that = (SimplePofPath)o;
         return(CollectionUtils.EqualsDeep(m_aiElements, that.m_aiElements));
     }
     return(false);
 }
        public void TestCOH5231()
        {
            var holder = new BooleanHolder {
                Boolean1 = false, Boolean2 = true
            };
            Binary bin = Serialize(holder);

            IPofValue root  = PofValueParser.Parse(bin, GetPofContext());
            IPofValue bool1 = new SimplePofPath(0).Navigate(root);
            IPofValue bool2 = new SimplePofPath(1).Navigate(root);

            Assert.IsFalse(bool1.GetBoolean());
            Assert.IsTrue((bool)bool2.GetValue());
        }