Use sequence/c's #:min-count for better error messages in `lines' and others
Closes PR13709
This commit is contained in:
parent
191ed1cedd
commit
1938928a44
|
@ -35,8 +35,8 @@
|
||||||
[else empty]))
|
[else empty]))
|
||||||
|
|
||||||
(defproc (lines-interval
|
(defproc (lines-interval
|
||||||
[v1s (sequence/c (sequence/c real?))]
|
[v1s (sequence/c (sequence/c #:min-count 2 real?))]
|
||||||
[v2s (sequence/c (sequence/c real?))]
|
[v2s (sequence/c (sequence/c #:min-count 2 real?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:color color plot-color/c (interval-color)]
|
[#:color color plot-color/c (interval-color)]
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
(cond [label (line-legend-entry label color width style)]
|
(cond [label (line-legend-entry label color width style)]
|
||||||
[else empty]))
|
[else empty]))
|
||||||
|
|
||||||
(defproc (lines [vs (sequence/c (sequence/c real?))]
|
(defproc (lines [vs (sequence/c (sequence/c #:min-count 2 real?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:color color plot-color/c (line-color)]
|
[#:color color plot-color/c (line-color)]
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
(if label (point-legend-entry label sym color fill-color size line-width) empty))
|
(if label (point-legend-entry label sym color fill-color size line-width) empty))
|
||||||
|
|
||||||
(defproc (points [vs (sequence/c (sequence/c real?))]
|
(defproc (points [vs (sequence/c (sequence/c #:min-count 2 real?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:sym sym point-sym/c (point-sym)]
|
[#:sym sym point-sym/c (point-sym)]
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
empty)
|
empty)
|
||||||
|
|
||||||
(defproc (error-bars
|
(defproc (error-bars
|
||||||
[bars (sequence/c (sequence/c real?))]
|
[bars (sequence/c (sequence/c #:min-count 3 real?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:color color plot-color/c (error-bar-color)]
|
[#:color color plot-color/c (error-bar-color)]
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
[else empty]))
|
[else empty]))
|
||||||
|
|
||||||
(defproc (rectangles
|
(defproc (rectangles
|
||||||
[rects (sequence/c (sequence/c ivl?))]
|
[rects (sequence/c (sequence/c #:min-count 2 ivl?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:color color plot-color/c (rectangle-color)]
|
[#:color color plot-color/c (rectangle-color)]
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
(lines3d-render-proc vs-thnk color width style alpha label)))]))
|
(lines3d-render-proc vs-thnk color width style alpha label)))]))
|
||||||
|
|
||||||
(defproc (lines3d
|
(defproc (lines3d
|
||||||
[vs (sequence/c (sequence/c real?))]
|
[vs (sequence/c (sequence/c #:min-count 3 real?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:z-min z-min (or/c rational? #f) #f] [#:z-max z-max (or/c rational? #f) #f]
|
[#:z-min z-min (or/c rational? #f) #f] [#:z-max z-max (or/c rational? #f) #f]
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
[else empty]))
|
[else empty]))
|
||||||
|
|
||||||
(defproc (points3d
|
(defproc (points3d
|
||||||
[vs (sequence/c (sequence/c real?))]
|
[vs (sequence/c (sequence/c #:min-count 3 real?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:z-min z-min (or/c rational? #f) #f] [#:z-max z-max (or/c rational? #f) #f]
|
[#:z-min z-min (or/c rational? #f) #f] [#:z-max z-max (or/c rational? #f) #f]
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
[else empty]))
|
[else empty]))
|
||||||
|
|
||||||
(defproc (rectangles3d
|
(defproc (rectangles3d
|
||||||
[rects (sequence/c (sequence/c ivl?))]
|
[rects (sequence/c (sequence/c #:min-count 3 ivl?))]
|
||||||
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
[#:x-min x-min (or/c rational? #f) #f] [#:x-max x-max (or/c rational? #f) #f]
|
||||||
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
[#:y-min y-min (or/c rational? #f) #f] [#:y-max y-max (or/c rational? #f) #f]
|
||||||
[#:z-min z-min (or/c rational? #f) #f] [#:z-max z-max (or/c rational? #f) #f]
|
[#:z-min z-min (or/c rational? #f) #f] [#:z-max z-max (or/c rational? #f) #f]
|
||||||
|
|
19
pkgs/plot-pkgs/plot-test/plot/tests/PRs/13709.rkt
Normal file
19
pkgs/plot-pkgs/plot-test/plot/tests/PRs/13709.rkt
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#lang racket
|
||||||
|
|
||||||
|
(require plot rackunit)
|
||||||
|
|
||||||
|
(check-exn #rx"'\\(1\\)" (λ () (lines '((1)))))
|
||||||
|
(check-exn #rx"\\(list \\(ivl 1 2\\)\\)" (λ () (rectangles (list (list (ivl 1 2))))))
|
||||||
|
(check-exn #rx"'\\(1\\)" (λ () (points '((1)))))
|
||||||
|
(check-exn #rx"'\\(1\\)" (λ () (error-bars '((1)))))
|
||||||
|
(check-exn #rx"'\\(1 2\\)" (λ () (error-bars '((1 2)))))
|
||||||
|
(check-exn #rx"'\\(1\\)" (λ () (lines-interval '((1)) '((1 2)))))
|
||||||
|
(check-exn #rx"'\\(1\\)" (λ () (lines-interval '((1 2)) '((1)))))
|
||||||
|
|
||||||
|
(check-exn #rx"'\\(1\\)" (λ () (lines3d '((1)))))
|
||||||
|
(check-exn #rx"'\\(1 2\\)" (λ () (lines3d '((1 2)))))
|
||||||
|
(check-exn #rx"\\(list \\(ivl 1 2\\)\\)" (λ () (rectangles3d (list (list (ivl 1 2))))))
|
||||||
|
(check-exn #rx"\\(list \\(ivl 1 2\\) \\(ivl 2 3\\)\\)" (λ () (rectangles3d
|
||||||
|
(list (list (ivl 1 2) (ivl 2 3))))))
|
||||||
|
(check-exn #rx"'\\(1\\)" (λ () (points3d '((1)))))
|
||||||
|
(check-exn #rx"'\\(1 2\\)" (λ () (points3d '((1 2)))))
|
Loading…
Reference in New Issue
Block a user