diff --git a/collects/tests/unstable/queue.rkt b/collects/tests/unstable/queue.rkt new file mode 100644 index 0000000000..1469289343 --- /dev/null +++ b/collects/tests/unstable/queue.rkt @@ -0,0 +1,53 @@ +#lang racket + +(require rackunit rackunit/text-ui unstable/queue "helpers.rkt") + +(run-tests + (test-suite "queue.ss" + (test-suite "queue-empty?" + (test-case "make-queue" + (check-true (queue-empty? (make-queue)))) + (test-case "enqueue! once" + (let* ([q (make-queue)]) + (enqueue! q 1) + (check-false (queue-empty? q)))) + (test-case "enqueue! once / dequeue! once" + (let* ([q (make-queue)]) + (enqueue! q 1) + (dequeue! q) + (check-true (queue-empty? q)))) + (test-case "enqueue! twice" + (let* ([q (make-queue)]) + (enqueue! q 1) + (enqueue! q 2) + (check-false (queue-empty? q)))) + (test-case "enqueue! twice / dequeue! once" + (let* ([q (make-queue)]) + (enqueue! q 1) + (enqueue! q 2) + (dequeue! q) + (check-false (queue-empty? q)))) + (test-case "enqueue! twice / dequeue! twice" + (let* ([q (make-queue)]) + (enqueue! q 1) + (enqueue! q 2) + (dequeue! q) + (dequeue! q) + (check-true (queue-empty? q))))) + (test-suite "dequeue!" + (test-case "make-queue" + (check-exn exn:fail:contract? (lambda () (dequeue! (make-queue))))) + (test-case "enqueue! once" + (let* ([q (make-queue)]) + (enqueue! q 1) + (check-equal? (dequeue! q) 1) + (check-exn exn:fail:contract? + (lambda () (dequeue! q))))) + (test-case "enqueue! twice" + (let* ([q (make-queue)]) + (enqueue! q 1) + (enqueue! q 2) + (check-equal? (dequeue! q) 1) + (check-equal? (dequeue! q) 2) + (check-exn exn:fail:contract? + (lambda () (dequeue! q)))))))) diff --git a/collects/unstable/cce/reference/manual.scrbl b/collects/unstable/cce/reference/manual.scrbl index 2728b1139f..2b814d12ae 100644 --- a/collects/unstable/cce/reference/manual.scrbl +++ b/collects/unstable/cce/reference/manual.scrbl @@ -15,7 +15,6 @@ @include-section["set.scrbl"] @include-section["dict.scrbl"] @include-section["hash.scrbl"] -@include-section["queue.scrbl"] @include-section["syntax.scrbl"] @include-section["define.scrbl"] diff --git a/collects/unstable/cce/test/test-main.ss b/collects/unstable/cce/test/test-main.ss index 80f4a83802..b84e009373 100644 --- a/collects/unstable/cce/test/test-main.ss +++ b/collects/unstable/cce/test/test-main.ss @@ -10,7 +10,6 @@ "test-hash.ss" "test-planet.ss" "test-port.ss" - "test-queue.ss" "test-regexp.ss" "test-require-provide.ss" "test-sandbox.ss" @@ -29,7 +28,6 @@ hash-suite planet-suite port-suite - queue-suite regexp-suite require-provide-suite sandbox-suite diff --git a/collects/unstable/cce/test/test-queue.ss b/collects/unstable/cce/test/test-queue.ss deleted file mode 100644 index 2857c879b0..0000000000 --- a/collects/unstable/cce/test/test-queue.ss +++ /dev/null @@ -1,56 +0,0 @@ -#lang scheme - -(require "checks.ss" - "../queue.ss") - -(provide queue-suite) - -(define queue-suite - (test-suite "queue.ss" - (test-suite "queue-empty?" - (test-case "make-queue" - (check-true (queue-empty? (make-queue)))) - (test-case "enqueue! once" - (let* ([q (make-queue)]) - (enqueue! q 1) - (check-false (queue-empty? q)))) - (test-case "enqueue! once / dequeue! once" - (let* ([q (make-queue)]) - (enqueue! q 1) - (dequeue! q) - (check-true (queue-empty? q)))) - (test-case "enqueue! twice" - (let* ([q (make-queue)]) - (enqueue! q 1) - (enqueue! q 2) - (check-false (queue-empty? q)))) - (test-case "enqueue! twice / dequeue! once" - (let* ([q (make-queue)]) - (enqueue! q 1) - (enqueue! q 2) - (dequeue! q) - (check-false (queue-empty? q)))) - (test-case "enqueue! twice / dequeue! twice" - (let* ([q (make-queue)]) - (enqueue! q 1) - (enqueue! q 2) - (dequeue! q) - (dequeue! q) - (check-true (queue-empty? q))))) - (test-suite "dequeue!" - (test-case "make-queue" - (check-exn exn:fail:contract? (lambda () (dequeue! (make-queue))))) - (test-case "enqueue! once" - (let* ([q (make-queue)]) - (enqueue! q 1) - (check-equal? (dequeue! q) 1) - (check-exn exn:fail:contract? - (lambda () (dequeue! q))))) - (test-case "enqueue! twice" - (let* ([q (make-queue)]) - (enqueue! q 1) - (enqueue! q 2) - (check-equal? (dequeue! q) 1) - (check-equal? (dequeue! q) 2) - (check-exn exn:fail:contract? - (lambda () (dequeue! q)))))))) diff --git a/collects/unstable/cce/queue.ss b/collects/unstable/queue.rkt similarity index 99% rename from collects/unstable/cce/queue.ss rename to collects/unstable/queue.rkt index f749017e96..ced8ab16af 100644 --- a/collects/unstable/cce/queue.ss +++ b/collects/unstable/queue.rkt @@ -1,4 +1,4 @@ -#lang scheme +#lang racket ;; A Queue is a circularly linked list of queue structures. ;; The head of the circle is identified by the distinguished head value. diff --git a/collects/unstable/cce/reference/queue.scrbl b/collects/unstable/scribblings/queue.scrbl similarity index 73% rename from collects/unstable/cce/reference/queue.scrbl rename to collects/unstable/scribblings/queue.scrbl index 7d237f16eb..180912a0fe 100644 --- a/collects/unstable/cce/reference/queue.scrbl +++ b/collects/unstable/scribblings/queue.scrbl @@ -1,13 +1,11 @@ -#lang scribble/doc -@(require scribble/manual - scribble/eval - "../scribble.ss" - "eval.ss") -@(require (for-label scheme unstable/cce/queue)) +#lang scribble/manual +@(require scribble/eval "utils.rkt" (for-label racket unstable/queue)) -@title[#:style 'quiet #:tag "cce-queue"]{Imperative Queues} +@title{Imperative Queues} -@defmodule[unstable/cce/queue] +@defmodule[unstable/queue] + +@unstable[@author+email["Carl Eastlund" "cce@racket-lang.org"]] This module provides a mutable queue representation. @@ -23,7 +21,7 @@ Adds an element to the back of a queue. Removes an element from the front of a nonempty queue, and returns that element. @defexamples[ -#:eval (evaluator 'unstable/cce/queue) +#:eval (eval/require 'unstable/queue) (define q (make-queue)) (enqueue! q 1) (dequeue! q) @@ -38,7 +36,7 @@ Removes an element from the front of a nonempty queue, and returns that element. Recognizes whether a queue is empty or not. @defexamples[ -#:eval (evaluator 'unstable/cce/queue) +#:eval (eval/require 'unstable/queue) (define q (make-queue)) (queue-empty? q) (enqueue! q 1) @@ -52,7 +50,7 @@ Recognizes whether a queue is empty or not. This predicate recognizes queues. @defexamples[ -#:eval (evaluator 'unstable/cce/queue) +#:eval (eval/require 'unstable/queue) (queue? (make-queue)) (queue? 'not-a-queue) ] diff --git a/collects/unstable/scribblings/unstable.scrbl b/collects/unstable/scribblings/unstable.scrbl index c4ae6cedd4..cc3a764af9 100644 --- a/collects/unstable/scribblings/unstable.scrbl +++ b/collects/unstable/scribblings/unstable.scrbl @@ -81,6 +81,7 @@ Keep documentation and tests up to date. @include-section["net.scrbl"] @include-section["path.scrbl"] @include-section["pretty.scrbl"] +@include-section["queue.scrbl"] @include-section["srcloc.scrbl"] @include-section["string.scrbl"] @include-section["struct.scrbl"]