function assertTreesIdentical(expectedTree, original, copy) {
  assertEquals(expectedTree, lf.tree.toString(original));
  assertEquals(expectedTree, lf.tree.toString(copy));

  // Asserting that the copy tree holds new instances for each node.
  var originalTraversedNodes = [];
  original.traverse(function(node) {
    originalTraversedNodes.push(node);
  });

  copy.traverse(function(node) {
    var originalNode = originalTraversedNodes.shift();
    assertFalse(originalNode == node);
  });
}
Asserts that the given trees have identical structure and that they do not
hold any common object references.
@param {string} expectedTree The expected string representation of the two
    trees.
@param {!lf.structs.TreeNode} original The root node of the original tree.
@param {!lf.structs.TreeNode} copy The root node of the copied tree.