func caller() string {
	for i := 0; ; i++ {
		_, file, line, ok := runtime.Caller(i)
		if !ok {
			return ""
		}
		dir, _ := filepath.Split(file)
		if strings.HasSuffix(dir, pkgPath+"/") {
			continue
		}
		return fmt.Sprintf("%s:%d", filepath.Base(file), line)
	}
}
caller returns the file:lineno of the first caller up the stack
that's not in this package.
package asrt
import (
	"fmt"
	"path/filepath"
	"reflect"
	"runtime"
	"strings"
	"testing"
)
func Assert(t testing.TB, pred bool) {
	if !pred {
		fatal(t, "assertion failed")
	}
}
func Equal(t testing.TB, got, want interface{}) {
	if got != want {
		fatal(t, fmt.Sprintf("not equal: got %v; want %v", got, want))
	}
}
func DeepEqual(t testing.TB, got, want interface{}) {
	if !reflect.DeepEqual(got, want) {
		fatal(t, fmt.Sprintf("deep equal failed: got %v; want %v", got, want))
	}
}
func fatal(t testing.TB, msg string) {
	t.Fatalf("\r\t%s: %s", caller(), msg)
}