r4873: *** empty log message ***
[umlisp.git] / tests.lisp
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: umlisp -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
4 ;;;;
5 ;;;; Name:          tests.lisp
6 ;;;; Purpose:       Regression suite for UMLisp
7 ;;;; Author:        Kevin M. Rosenberg
8 ;;;; Date Started:  May 2003
9 ;;;;
10 ;;;; $Id: tests.lisp,v 1.7 2003/05/07 22:53:36 kevin Exp $
11 ;;;;
12 ;;;; This file, part of UMLisp, is
13 ;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
14 ;;;;
15 ;;;; UMLisp users are granted the rights to distribute and use this software
16 ;;;; as governed by the terms of the GNU General Public License.
17 ;;;; *************************************************************************
18
19 (defpackage #:umlisp-tests
20   (:use #:umlisp #:cl #:rtest #:kmrcl))
21 (in-package #:umlisp-tests)
22
23 (setf rtest::*catch-errors* nil)
24
25 (rem-all-tests)
26
27 (deftest qs.1 (umlisp::query-string mrcon (cui lui))
28   "select CUI,LUI from MRCON")
29
30 (deftest qs.1e (umlisp::query-string-eval 'mrcon '(cui lui))
31   "select CUI,LUI from MRCON")
32
33 (deftest qs.2 (umlisp::query-string mrcon (cui lui) 0)
34   "select CUI,LUI from MRCON and KCUILRL<=0")
35
36 (deftest qs.2e (umlisp::query-string-eval 'mrcon '(cui lui) 0)
37   "select CUI,LUI from MRCON and KCUILRL<=0")
38
39 (deftest qs.3 (umlisp::query-string mrcon (cui lui) nil cui 5)
40   "select CUI,LUI from MRCON where CUI=5")
41
42 (deftest qs.3e (umlisp::query-string-eval 'mrcon '(cui lui) nil 'cui 5)
43   "select CUI,LUI from MRCON where CUI=5")
44
45 (deftest qs.4 (umlisp::query-string mrcon (cui lui) nil kpfstr "Abc")
46   "select CUI,LUI from MRCON where KPFSTR='Abc'")
47
48 (deftest qs.4e (umlisp::query-string-eval 'mrcon '(cui lui) nil 'kpfstr "Abc")
49   "select CUI,LUI from MRCON where KPFSTR='Abc'")
50
51 (deftest qs.5 (umlisp::query-string mrcon (cui lui) 2 cui 5 :single t)
52   "select CUI,LUI from MRCON where CUI=5 and KCUILRL<=2 limit 1")
53
54 (deftest qs.5e (umlisp::query-string-eval 'mrcon '(cui lui) 2 'cui 5 :single t)
55   "select CUI,LUI from MRCON where CUI=5 and KCUILRL<=2 limit 1")
56
57 (deftest qs.6 (umlisp::query-string mrdef (sab def) 2 cui 39 :lrl ksrl :single t)
58   "select SAB,DEF from MRDEF where CUI=39 and KSRL<=2 limit 1")
59
60 (deftest qs.6e (umlisp::query-string-eval 'mrdef '(sab def) 2 'cui 39 :lrl 'ksrl :single t)
61   "select SAB,DEF from MRDEF where CUI=39 and KSRL<=2 limit 1")
62
63 (deftest qs.7 (umlisp::query-string mrdef (sab def) 2 cui 39 :lrl ksrl :order (cui asc))
64   "select SAB,DEF from MRDEF where CUI=39 and KSRL<=2 order by CUI asc")
65
66 (deftest qs.7e (umlisp::query-string-eval 'mrdef '(sab def) 2 'cui 39 :lrl 'ksrl :order '(cui asc))
67   "select SAB,DEF from MRDEF where CUI=39 and KSRL<=2 order by CUI asc")
68
69 (deftest qs.8 (umlisp::query-string mrdef (sab def) 2 cui 39 :lrl ksrl
70                                     :order (cui asc def desc))
71   "select SAB,DEF from MRDEF where CUI=39 and KSRL<=2 order by CUI asc,DEF desc")
72
73 (deftest qs.8e (umlisp::query-string-eval 'mrdef '(sab def) 2 'cui 39 :lrl 'ksrl
74                                     :order '(cui asc def desc))  
75   "select SAB,DEF from MRDEF where CUI=39 and KSRL<=2 order by CUI asc,DEF desc")
76
77 (deftest ui.1 (umlisp::parse-cui "C0002341") 2341)
78 (deftest ui.2 (umlisp::parse-lui "L0002341") 2341)
79 (deftest ui.3 (umlisp::parse-sui "S0000000") 0)
80 (deftest ui.4 (umlisp::parse-tui "T123") 123)
81 (deftest ui.5 (fmt-cui 2341) "C0002341")
82 (deftest ui.6 (fmt-lui 2341) "L0002341")
83 (deftest ui.7 (fmt-sui 2341) "S0002341")
84 (deftest ui.8 (fmt-tui 231) "T231")
85 (deftest ui.9 (fmt-tui 231) "T231")
86 (deftest ui.10 (fmt-eui 231) "E0000231")
87 (deftest ui.11 (umlisp::make-cuisui 5 11) 50000011)
88 (deftest ui.12 (umlisp::decompose-cuisui 50000011) 5 11)
89 (deftest ui.13 (umlisp::parse-eui "E00002311") 2311)
90 (deftest ui.14 (umlisp::parse-lui "1234") 1234)
91 (deftest ui.15 (umlisp::parse-lui 1234) 1234)
92   
93 (defun f2 (&key (srl *current-srl*))
94   "Return list of all ucon's"
95   (umlisp::with-umlisp-query ('mrcon (cui kpfstr kcuilrl) srl nil nil)
96     (make-instance 'ucon :cui (ensure-integer cui) :pfstr kpfstr
97                    :lrl (ensure-integer kcuilrl))))
98
99 (defun f1 (&key (srl *current-srl*))
100   "Return list of all ucon's"
101   (umlisp::with-sql-connection (db)
102     (clsql:map-query 
103      'list
104      #'(lambda (cui pfstr cuilrl)
105          (make-instance 'ucon :cui (ensure-integer cui)
106                         :pfstr pfstr
107                         :lrl (ensure-integer cuilrl)))
108      (umlisp::query-string 'mrcon '(cui kpfstr kcuilrl) srl nil nil)
109      :database db)))