package uuid import ( "fmt" "os" "reflect" ) func showColour() bool { return os.Getenv("NO_COLOUR") == "" } func testing(message string, body func()) { if showColour() { fmt.Fprintf( os.Stderr, "\033[0;33mtesting\033[0m: %s... ", message, ) body() fmt.Fprintf(os.Stderr, "\033[0;32mOK\033[0m.\n") } else { fmt.Fprintf(os.Stderr, "testing: %s... ", message) body() fmt.Fprintf(os.Stderr, "OK.\n") } } func assertEq(given any, expected any) { if !reflect.DeepEqual(given, expected) { if showColour() { fmt.Fprintf(os.Stderr, "\033[0;31mERR\033[0m.\n") } else { fmt.Fprintf(os.Stderr, "ERR.\n") } fmt.Fprintf(os.Stderr, "given != expected\n") fmt.Fprintf(os.Stderr, "given: %#v\n", given) fmt.Fprintf(os.Stderr, "expected: %#v\n", expected) os.Exit(1) } } func MainTest() { testing("string is the same after round-trip", func() { str1 := New().String() id, err := FromString(str1) assertEq(err, nil) str2 := id.String() assertEq(str1, str2) }) testing("UUID is the same after round-trip", func() { id1 := New() id2, err := FromString(id1.String()) assertEq(err, nil) assertEq(id1, id2) }) }