code: func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {
  	if h, ok := t.(tHelper); ok {
  		h.Helper()
  	}
  	if err := validateEqualArgs(expected, actual); err != nil {
  		return Fail(t, fmt.Sprintf("Invalid operation: %#v == %#v (%s)",
  			expected, actual, err), msgAndArgs...)
  	}
  
  	if !ObjectsAreEqual(expected, actual) {
  		diff := diff(expected, actual)
  		expected, actual = formatUnequalValues(expected, actual)
  		return Fail(t, fmt.Sprintf("Not equal: \n"+
  			"expected: %s\n"+
  			"actual  : %s%s", expected, actual, diff), msgAndArgs...)
  	}
  
  	return true
  
  }
docs: // Equal asserts that two objects are equal.
  //
  //    assert.Equal(t, 123, 123)
  //
  // Pointer variable equality is determined based on the equality of the
  // referenced values (as opposed to the memory addresses). Function equality
  // cannot be determined and will always fail.