uuid-test.rkt
#lang racket

(require racket/date)
(require (planet williams/uuid/uuid))

;;; Time-Based UUIDs
(define U1 (make-uuid-1))
(printf "(make-uuid-1)~n~a~n"
        U1)
(printf "Created ~a~n~n"
        (date->string (uuid-1->date U1) #t))

;;; Name-Based UUID Using MD5 Hashing
(printf
 "(make-uuid-3 namespace-DNS \"www.widgets.com\")~n~a~n"
 (make-uuid-3 namespace-DNS "www.widgets.com"))
(printf
 "(make-uuid-3 namespace-DNS \"www.widgets.com\" #:legacy #t)~n~a~n~n"
 (make-uuid-3 namespace-DNS "www.widgets.com" #:legacy #t))

;;; Name-Based UUID Using SHA-1 Hashing
(printf
 "(make-uuid-5 namespace-DNS \"www.widgets.com\")~n~a~n"
 (make-uuid-5 namespace-DNS "www.widgets.com"))
(printf
 "(make-uuid-5 namespace-DNS \"www.widgets.com\" #:legacy #t)~n~a~n~n"
 (make-uuid-5 namespace-DNS "www.widgets.com" #:legacy #t))

;;; (Pseudo-)Random UUID
(define U4 (make-uuid-4))
(printf "(make-uuid-4)~n~a~n~n" U4)

(printf "U4 = ~a~n~n" U4)
(printf "(uuid->string U4)~n~s~n~n" (uuid->string U4))
(printf "(uuid->urn-string U4)~n~s~n~n" (uuid->urn-string U4))

;;; Comparisons
(printf "namespace-DNS = ~a~n" namespace-DNS)
(printf "(uuid=? U4 U4) = ~a~n" (uuid=? U4 U4))
(printf "(uuid=? U4 namespace-DNS) = ~a~n" (uuid=? U4 namespace-DNS))
(printf "(uuid<? U4 namespace-DNS) = ~a~n" (uuid<? U4 namespace-DNS))
(printf "(uuid>? U4 namespace-DNS) = ~a~n" (uuid>? U4 namespace-DNS))