/// <summary> /// Render out the list using Next pointer /// </summary> /// <param name="n"></param> /// <returns></returns> private static string RenderListForward(MalformedDblLinkedList.Node<char> n) { StringBuilder strBuild = new StringBuilder(); while (n != null) { strBuild.Append(n.Value); n = n.Next; } return strBuild.ToString(); }
/// <summary> /// Render list of data using the BackPtr /// </summary> /// <param name="n"></param> /// <returns></returns> private static string RenderListBackPtr(MalformedDblLinkedList.Node<char> n) { StringBuilder strBuild = new StringBuilder(); while (n != null) { strBuild.Append(string.Format("{0}{1},", n.Value.ToString(), (n.BackPtr != null ? n.BackPtr.Value : ' '))); n = n.Next; } return strBuild.ToString(); }
private void DeepCopyVerify(MalformedDblLinkedList.Node<char> list) { var clonedList = MalformedDblLinkedList.DeepCopy<char>(list); // Test to verify the Forward pointer list in Clone is in same order as Original string strOrg = RenderListForward(list); string strClone = RenderListForward(clonedList); Debug.Print(string.Format("RenderForward: strOrg={0} strClone={1}", strOrg, strClone)); Assert.AreEqual(strOrg, strClone, string.Format("Mismatch: {0} != {1}", strOrg, strClone)); // Test to verify the Back/Random pointer list in Clone is in same order as Original strOrg = RenderListBackPtr(list); strClone = RenderListBackPtr(clonedList); Debug.Print(string.Format("RenderOnRadom: strOrg={0} strClone={1}", strOrg, strClone)); Assert.AreEqual(strOrg, strClone, string.Format("Mismatch on Random: {0} != {1}", strOrg, strClone)); }