/// <summary>
 /// Performs deep equality testing on two objects
 /// </summary>
 /// <param name="continuation">Continuation to operate on</param>
 /// <param name="expected">Expected value</param>
 /// <param name="customEqualityComparers">Objects implementing IEqualityComparer&lt;TProperty&gt;
 /// for customising equality testing for properties of type TProperty</param>
 /// <typeparam name="T">Type of object</typeparam>
 public static void Equal <T>(
     this IDeep <T> continuation,
     object expected,
     params object[] customEqualityComparers
     )
 {
     continuation.Equal(expected, MH.NULL_STRING, customEqualityComparers);
 }
 /// <summary>
 /// Performs deep equality testing on two objects
 /// </summary>
 /// <param name="continuation">Continuation to operate on</param>
 /// <param name="expected">Expected value</param>
 /// <param name="customMessage">Custom message to add to failure messages</param>
 /// <param name="customEqualityComparers">Objects implementing IEqualityComparer&lt;TProperty&gt;
 /// for customising equality testing for properties of type TProperty</param>
 /// <typeparam name="T">Type of object</typeparam>
 public static void Equal <T>(
     this IDeep <T> continuation,
     object expected,
     string customMessage,
     params object[] customEqualityComparers
     )
 {
     continuation.Equal(expected, () => customMessage, customEqualityComparers);
 }