;;; -*- mode: Lisp; Syntax: Common-Lisp; -*- ;;; ;;; Copyright (c) 2009 by the authors. ;;; ;;; See LICENCE for details. (in-package :hu.dwim.number-toss.test) (def suite* (test :in root-suite)) (def special-variable *test-ip-address* (iolib.sockets:ensure-address "127.0.0.1")) (def test test/compute-selected-ranks () (iter (for length :from 10 :to 100) (iter (for current-rank :in (cons nil (iter (for i :from 1 :to 100) (collect i)))) (iter (for max-rank :from (or current-rank 1) :to 100) (for selected-ranks = (scoreboard/compute-selected-ranks length current-rank max-rank)) (is (= (min max-rank length) (length selected-ranks))) (is (member 1 selected-ranks)) (is (member max-rank selected-ranks)) (is (or (not current-rank) (member current-rank selected-ranks))) (is (or (not current-rank) (member (floor (/ (1+ current-rank) 2)) selected-ranks))) (is (or (< length max-rank) (equal selected-ranks (iter (for i :from 1 :to max-rank) (collect i))))) (is (= (length selected-ranks) (length (remove-duplicates selected-ranks)))) (is (equal selected-ranks (sort (copy-seq selected-ranks) #'<))))))) (def function test-message (request function-name) (bind ((response (trivial-utf-8:utf-8-bytes-to-string (emit-into-xml-stream-buffer () (with-transaction (bind ((*request-remote-address* *test-ip-address*) (player-id (hu.dwim.number-toss::id-of (player/find-by-name "levy")))) (funcall function-name (cxml:parse (format nil request player-id player-id) (hu.dwim.util.flexml:make-builder :default-package (find-package :hu.dwim.number-toss) :default-node-class 'hu.dwim.util.flexml:node :drop-whitespace #t))))))))) (is (search "\"done\"" response)) response)) (def suite* (test/service :in test)) (def test test/service/register-player-request () (test-message "" 'service/process-register-player-request)) (def test test/service/refresh-global-settings-request () (test-message "" 'service/process-refresh-global-settings-request)) (def test test/service/refresh-high-scores-request () (test-message "" 'service/process-refresh-high-scores-request)) (def test test/service/submit-game-request () (test-message "" 'service/process-submit-game-request)) (def test test/service/submit-challenge-request () (test-message "" 'service/process-submit-challenge-request)) (def test test/service/refresh-challenge-list-request () (test-message "" 'service/process-refresh-challenge-list-request)) (def test test/service/refresh-challenge-suggestion-request () (test-message "" 'service/process-refresh-challenge-suggestion-request)) (def test test/service/refresh-challenge-scoreboard-request () (test-message "" 'service/process-refresh-challenge-scoreboard-request)) (def test test/service/refresh-challenge-player-scoreboard-request () (test-message "" 'service/process-refresh-challenge-player-scoreboard-request)) (def test test/service/refresh-overall-scoreboard-request () (test-message "" 'service/process-refresh-overall-scoreboard-request)) (def test test/service/refresh-overall-player-scoreboard-request () (test-message "" 'service/process-refresh-overall-player-scoreboard-request))