diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-17 16:52:41 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-17 16:52:41 +0100 |
| commit | a02b892e2ad1e1605ff942c63afdd618daa48be4 (patch) | |
| tree | 7ccd9278a0cdc7fd2f156b0b4710f6ac00acab27 /tests/animation-test.scm | |
| parent | 8251c85a4a588504d38a2fad05e4b0fe1cdccb9d (diff) | |
Migrate tests to the test egg
Diffstat (limited to 'tests/animation-test.scm')
| -rw-r--r-- | tests/animation-test.scm | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/tests/animation-test.scm b/tests/animation-test.scm index aae829a..adf534f 100644 --- a/tests/animation-test.scm +++ b/tests/animation-test.scm @@ -1,4 +1,4 @@ -(import srfi-64 +(import test (only (list-utils alist) plist->alist)) (include "entity.scm") (include "tilemap.scm") @@ -14,59 +14,60 @@ (test-group "frame->tile-id" (test-group "tile IDs only" - (test-equal "first frame, frames (0)" 0 (frame->tile-id '(0) 0)) - (test-equal "wraps around" 0 (frame->tile-id '(0 1) 2)) - (test-equal "frame 1 of (27 28)" 28 (frame->tile-id '(27 28) 1))) + (test "first frame, frames (0)" 0 (frame->tile-id '(0) 0)) + (test "wraps around" 0 (frame->tile-id '(0 1) 2)) + (test "frame 1 of (27 28)" 28 (frame->tile-id '(27 28) 1))) (test-group "tile IDs and durations" - (test-equal "first frame, frames (0)" 0 (frame->tile-id '((0 10)) 0)) - (test-equal "wraps around" 0 (frame->tile-id '((0 10) (1 10)) 2)) - (test-equal "frame 1 of (27 28)" 28 (frame->tile-id '((27 10) (28 10)) 1)))) + (test "first frame, frames (0)" 0 (frame->tile-id '((0 10)) 0)) + (test "wraps around" 0 (frame->tile-id '((0 10) (1 10)) 2)) + (test "frame 1 of (27 28)" 28 (frame->tile-id '((27 10) (28 10)) 1)))) (test-group "frame->duration" - (test-equal "first frame, frames (0)" 100 (frame->duration '((0 100)) 0)) - (test-equal "wraps around" 100 (frame->duration '((0 100) (1 200)) 2)) - (test-equal "frame 1 of (27 28)" 200 (frame->duration '((27 100) (28 200)) 1)) + (test "first frame, frames (0)" 100 (frame->duration '((0 100)) 0)) + (test "wraps around" 100 (frame->duration '((0 100) (1 200)) 2)) + (test "frame 1 of (27 28)" 200 (frame->duration '((27 100) (28 200)) 1)) ) (test-group "set-animation" (let ((e (entity #:type 'player #:anim-name 'idle #:anim-frame 5 #:anim-tick 8))) - (test-equal "no-op if already active" e (set-animation e 'idle)) + (test "no-op if already active" e (set-animation e 'idle)) (let ((switched (set-animation e 'walk))) - (test-equal "switches anim-name" 'walk (entity-ref switched #:anim-name)) - (test-equal "resets frame" 0 (entity-ref switched #:anim-frame)) - (test-equal "resets tick" 0 (entity-ref switched #:anim-tick))))) + (test "switches anim-name" 'walk (entity-ref switched #:anim-name)) + (test "resets frame" 0 (entity-ref switched #:anim-frame)) + (test "resets tick" 0 (entity-ref switched #:anim-tick))))) (test-group "animate-entity" (test-group "Single frames" (let* ((anims (list (anim #:name 'walk #:frames '(2 3) #:duration 4))) (e (entity #:type 'player #:anim-name 'walk #:anim-frame 0 #:anim-tick 0)) (stepped (animate-entity e anims))) - (test-equal "increments tick" 1 (entity-ref stepped #:anim-tick)) - (test-equal "sets tile-id on first tick" 2 (entity-ref stepped #:tile-id))) + (test "increments tick" 1 (entity-ref stepped #:anim-tick)) + (test "sets tile-id on first tick" 2 (entity-ref stepped #:tile-id))) (let* ((anims (list (anim #:name 'walk #:frames '(0 1) #:duration 2))) (e (entity #:type 'player #:anim-name 'walk #:anim-frame 0 #:anim-tick 1)) (advanced (animate-entity e anims))) - (test-equal "advances frame when tick reaches duration" 1 (entity-ref advanced #:anim-frame)) - (test-equal "resets tick on frame advance" 0 (entity-ref advanced #:anim-tick)))) + (test "advances frame when tick reaches duration" 1 (entity-ref advanced #:anim-frame)) + (test "resets tick on frame advance" 0 (entity-ref advanced #:anim-tick)))) (test-group "Frames with duration" (let* ((anims (list (anim #:name 'walk #:frames '((0 10) (1 20)) #:duration 4))) (e (entity #:type 'player #:anim-name 'walk #:anim-frame 0 #:anim-tick 9)) (stepped (animate-entity e anims))) - (test-equal "ticks resets on frame switch" 0 (entity-ref stepped #:anim-tick)) - (test-equal "sets tile-id on 10th tick" 1 (entity-ref stepped #:tile-id)) - (test-equal "sets duration to frame duration" 20 (entity-ref stepped #:duration)))) + (test "ticks resets on frame switch" 0 (entity-ref stepped #:anim-tick)) + (test "sets tile-id on 10th tick" 1 (entity-ref stepped #:tile-id)) + (test "sets duration to frame duration" 20 (entity-ref stepped #:duration)))) (test-group "Empty" (let* ((e (entity #:type 'player))) - (test-equal "unchanged entity without anim-name" e (animate-entity e '()))))) + (test "unchanged entity without anim-name" e (animate-entity e '()))))) (test-group "animation pipeline" (test-group "animated entity" (let* ((anims (list (anim #:name 'walk #:frames '(2 3) #:duration 4))) (e (entity #:type 'player #:anim-name 'walk #:anim-frame 0 #:anim-tick 0 #:animations anims)) (stepped-entity (apply-animation #f e 10))) - (test-equal "Updated animated entity" 1 (entity-ref stepped-entity #:anim-tick))) + (test "Updated animated entity" 1 (entity-ref stepped-entity #:anim-tick))) (let* ((e (entity #:type 'static)) (stepped-entity (apply-animation #f e 10))) - (test-equal "unchanged static entity" #f (entity-ref stepped-entity #:anim-tick))))) + (test "unchanged static entity" #f (entity-ref stepped-entity #:anim-tick))))) (test-end "animation") +(test-exit) |
