blob: 4781b80ad0fb4b1b04a3a180ed1f83f20fb6e244 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
;;;; srfi-9.test --- Test suite for Guile's SRFI-9 functions. -*- scheme -*-
;;;; Martin Grabmueller, 2001-05-10
;;;;
;;;; Copyright (C) 2001 Free Software Foundation, Inc.
;;;;
;;;; This program 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 2, or (at your option)
;;;; any later version.
;;;;
;;;; This program 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 this software; see the file COPYING. If not, write to
;;;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;;;; Boston, MA 02110-1301 USA
(use-modules (srfi srfi-9))
(define-record-type :foo (make-foo x) foo?
(x get-x) (y get-y set-y!))
(define f (make-foo 1))
(set-y! f 2)
(with-test-prefix "record procedures"
(pass-if "predicate"
(foo? f))
(pass-if "accessor 1"
(= 1 (get-x f)))
(pass-if "accessor 2"
(= 2 (get-y f)))
(pass-if "modifier"
(set-y! f #t)
(eq? #t (get-y f))))
|