fix typo, stream-empty? -> set-empty? (#2191)
* fix typo, stream-empty? -> set-empty? * add a regression test for the set->stream fallback
This commit is contained in:
parent
a0ca6d6489
commit
6cc3a2f960
28
pkgs/racket-test-extra/tests/racket/set-regression.rkt
Normal file
28
pkgs/racket-test-extra/tests/racket/set-regression.rkt
Normal file
|
@ -0,0 +1,28 @@
|
|||
#lang racket/base
|
||||
|
||||
(require racket/generic racket/set racket/stream rackunit)
|
||||
|
||||
(define-syntax-rule (delegate method params input wrap-output)
|
||||
(begin
|
||||
(define/generic generic-method method)
|
||||
(define (method . params) (wrap-output (generic-method . input)))))
|
||||
|
||||
(struct mask (s)
|
||||
#:methods gen:set
|
||||
[(delegate set-empty? [m] [(mask-s m)] values)
|
||||
(delegate set-member? [m v] [(mask-s m) v] values)
|
||||
(delegate set-add [m v] [(mask-s m) v] mask)
|
||||
(delegate set-remove [m v] [(mask-s m) v] mask)
|
||||
(delegate set-first [m] [(mask-s m)] values)
|
||||
(delegate set-rest [m] [(mask-s m)] mask)])
|
||||
|
||||
;; ---
|
||||
|
||||
(check set=?
|
||||
(list 3 5 8)
|
||||
(stream->list (set->stream (mask (set 3 5 8)))))
|
||||
|
||||
(check set=?
|
||||
(list 2 4 8)
|
||||
(set->list (mask (set 2 4 8))))
|
||||
|
|
@ -125,13 +125,13 @@
|
|||
[(set-implements? s 'set-empty? 'set-first 'set-rest)
|
||||
(let loop ([s s])
|
||||
(cond
|
||||
[(stream-empty? s) empty-stream]
|
||||
[(set-empty? s) empty-stream]
|
||||
[else (stream-cons (set-first s)
|
||||
(loop (set-rest s)))]))]
|
||||
[(set-implements? s 'set-empty? 'set-first 'set-remove)
|
||||
(let loop ([s s])
|
||||
(cond
|
||||
[(stream-empty? s) empty-stream]
|
||||
[(set-empty? s) empty-stream]
|
||||
[else (stream-cons (set-first s)
|
||||
(loop (set-remove s (set-first s))))]))]
|
||||
[(set-implements? s 'set-count 'set-first 'set-rest)
|
||||
|
|
Loading…
Reference in New Issue
Block a user