;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; This file is part of "NOVA": NOVA = search + COCOMO tools ; Copyright, 2008, Tim Menzies tim@menzies.us ; ; NOVA 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. ; ; NOVA 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 ; a long with NOVA. If not, see . ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-package :xomo-test.model) (deftestsuite threat-model-xomo-test-suite (fresh-default-xomo-db-test-suite-mixin xomo-tests) ()) (addtest check-guess-risk-peak (let ((rpi (make-risk-peak :range '(1 2 3 4)))) (ensure-no-warning (guess rpi)) (ensure (typep (guess rpi) 'risk-peak-guess)))) (addtest check-lookup-value-from-table-risk-lookup-table (let ((rlti (make-risk-lookup-table 'tl 0.5 4 4))) (ensure-no-warning (lookup-value-from-table rlti 4 2 2)) (ensure (numberp (lookup-value-from-table rlti 4 2 2))))) (addtest check-lookup-value-from-table-risk-lookup-table-invalid-postions (let ((rlti (make-risk-lookup-table 'tl 0.5 4 4))) (ensure-error (lookup-value-from-table rlti 4 2 2 1)) (ensure-error (lookup-value-from-table rlti 4 2)))) (addtest check-lookup-value-from-table-risk-lookup-table-out-of-range (let ((rlti (make-risk-lookup-table 'tl 0.5 4 4))) (ensure-error (lookup-value-from-table rlti 4 2 5)) (ensure-error (lookup-value-from-table rlti 4 5 2)))) (addtest check-2risk-em (let ((sym 'acap)) (ensure-no-warning (2risk sym)) (ensure (numberp (2risk sym))))) (addtest check-2risk-sf (let ((sym 'flex)) (ensure-no-warning (2risk sym)) (ensure (numberp (2risk sym))))) (addtest check-2risk-dr (let ((sym 'etat)) (ensure-no-warning (2risk sym)) (ensure (numberp (2risk sym))))) (addtest check-r (ensure-no-warning (r cplx-tool)) (ensure (numberp (r cplx-tool)))) (addtest check-threat (ensure-no-warning (threat)) (ensure (numberp (threat)))) (addtest demo-threat (ensure-no-warning (let (out) (format t "~&Threat estimates, sorted~%") (format t "~a" (dotimes (i 10 (sort out #'<)) (zaps) (push (threat) out)))))) (addtest demo-threat-distogram (ensure-no-warning (let ((d (make-dist :fuzz 5))) (dotimes (i 1000) (zaps) (dist-add (threat) d)) (format t "~&Threat estimates, rounded to the nearest 5~%") (distogram d :shrink 20 :lwidth 10 :rwidth 6))))