diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-01-11 23:43:30 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-01-11 23:50:01 +0100 |
commit | d326767e6417cbaad2856e6641e98dd80311b8c3 (patch) | |
tree | 4669aba945536ca87465aa72c94081b0f8c4b866 /tests | |
parent | 0009ed71ad288358cbc7828954b5e1a3f18fd525 (diff) | |
download | gnu-guix-d326767e6417cbaad2856e6641e98dd80311b8c3.tar gnu-guix-d326767e6417cbaad2856e6641e98dd80311b8c3.tar.gz |
Add (guix sets).
* guix/sets.scm, tests/sets.scm: New files.sets
* Makefile.am (MODULES, SCM_TESTS): Add them.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/sets.scm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/sets.scm b/tests/sets.scm new file mode 100644 index 0000000000..0a89591765 --- /dev/null +++ b/tests/sets.scm @@ -0,0 +1,52 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (test-sets) + #:use-module (guix sets) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-64)) + + +(test-begin "sets") + +(test-assert "set-contains?" + (let* ((lst (iota 123)) + (set (list->set lst))) + (and (every (cut set-contains? set <>) + lst) + (not (set-contains? set -1))))) + +(test-assert "set->list" + (let* ((lst (iota 123)) + (set (list->set lst))) + (lset= = lst (set->list set)))) + +(test-assert "set-union" + (let* ((a (list 'a)) + (b (list 'b)) + (s1 (setq a)) + (s2 (setq b)) + (s3 (set-union s1 s2))) + (and (set-contains? s3 a) + (set-contains? s3 b)))) + +(test-end) + + +(exit (= (test-runner-fail-count (test-runner-current)) 0)) |