test_utils.go raw

   1  package util
   2  
   3  import (
   4  	"reflect"
   5  )
   6  
   7  func Equal(expected, actual interface{}) bool {
   8  	if expected == nil && actual == nil {
   9  		return true
  10  	}
  11  	if expected == nil || actual == nil {
  12  		return false
  13  	}
  14  	actualType := reflect.TypeOf(actual)
  15  	expectedValue := reflect.ValueOf(expected)
  16  	if expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) {
  17  		return reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), actual)
  18  	}
  19  	return reflect.DeepEqual(expected, actual)
  20  }
  21