From: Carl Worth Date: Tue, 7 Jul 2020 12:40:03 +0000 (-0700) Subject: test: Extend Scribe testing to encompass a complete game X-Git-Url: https://git.cworth.org/git?p=lmno-server;a=commitdiff_plain;h=bf51534cfe9f8f1d90fd6df4ae590fdecdc2825e test: Extend Scribe testing to encompass a complete game Including the formation of several large-ish glyph shapes. There's not actually a _lot_ of functional testing here. It would be much more useful if the server reported whether a move generated a glyph or not, (and then the test suite could verify that result on every single move). For that, we'll also want to aloow sub-tests that don't generate an entire line of output, but instead just a single letter. --- diff --git a/test b/test index bcf3e3f..83f4cfb 100755 --- a/test +++ b/test @@ -617,6 +617,178 @@ result=$(scribe_move '[1,1]') test "$result" = '{"legal":true}' TEST_END +TEST "Player o forms Cross glyph" +scribe_set_player_team o +scribe_move '[1,4]' >/dev/null +scribe_set_player_team + +scribe_move '[1,2]' >/dev/null +scribe_set_player_team o +scribe_move '[4,4]' >/dev/null +scribe_set_player_team + +scribe_move '[2,1]' >/dev/null +scribe_set_player_team o +scribe_move '[4,7]' >/dev/null +scribe_set_player_team + +scribe_move '[1,5]' >/dev/null +scribe_set_player_team o +scribe_move '[7,4]' >/dev/null +scribe_set_player_team + +scribe_move '[5,1]' >/dev/null +scribe_set_player_team o +scribe_move '[4,3]' >/dev/null +scribe_set_player_team + +scribe_move '[1,8]' >/dev/null +scribe_set_player_team o +scribe_move '[3,4]' >/dev/null +scribe_set_player_team + +scribe_move '[8,1]' >/dev/null +scribe_set_player_team o +result=$(scribe_move '[4,5]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player + forms J glyph" +scribe_set_player_team + +result=$(scribe_move '[1,7]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player + forms Earring glyph" +scribe_set_player_team o +scribe_move '[5,4]' >/dev/null +scribe_set_player_team + +scribe_move '[7,1]' >/dev/null +scribe_set_player_team o +scribe_move '[4,6]' >/dev/null +scribe_set_player_team + +result=$(scribe_move '[1,3]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player o forms House glyph" +scribe_set_player_team o +scribe_move '[6,4]' >/dev/null +scribe_set_player_team + +scribe_move '[3,1]' >/dev/null +scribe_set_player_team o +result=$(scribe_move '[4,8]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player + forms O glyph" +scribe_set_player_team + +result=$(scribe_move '[1,6]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player o forms T glyph" +scribe_set_player_team o +scribe_move '[8,6]' >/dev/null +scribe_set_player_team + +scribe_move '[6,7]' >/dev/null +scribe_set_player_team o +scribe_move '[6,3]' >/dev/null +scribe_set_player_team + +scribe_move '[7,8]' >/dev/null +scribe_set_player_team o +scribe_move '[3,6]' >/dev/null +scribe_set_player_team + +scribe_move '[8,2]' >/dev/null +scribe_set_player_team o +scribe_move '[6,6]' >/dev/null +scribe_set_player_team + +scribe_move '[2,8]' >/dev/null +scribe_set_player_team o +result=$(scribe_move '[6,5]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player o forms Chair glyph" +scribe_set_player_team + +scribe_move '[8,5]' >/dev/null +scribe_set_player_team o +scribe_move '[5,6]' >/dev/null +scribe_set_player_team + +scribe_move '[5,8]' >/dev/null +scribe_set_player_team o +result=$(scribe_move '[6,2]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player + forms Bomber glyph" +scribe_set_player_team + +scribe_move '[8,8]' >/dev/null +scribe_set_player_team o +scribe_move '[2,6]' >/dev/null +scribe_set_player_team + +result=$(scribe_move '[8,4]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player o forms H glyph" +scribe_set_player_team o +result=$(scribe_move '[6,8]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player + forms 6-Block glyph" +scribe_set_player_team + +scribe_move '[4,2]' >/dev/null +scribe_set_player_team o +scribe_move '[8,3]' >/dev/null +scribe_set_player_team + +scribe_move '[2,4]' >/dev/null +scribe_set_player_team o +scribe_move '[3,3]' >/dev/null +scribe_set_player_team + +scribe_move '[2,2]' >/dev/null +scribe_set_player_team o +scribe_move '[3,7]' >/dev/null +scribe_set_player_team + +scribe_move '[2,5]' >/dev/null +scribe_set_player_team o +scribe_move '[7,3]' >/dev/null +scribe_set_player_team + +scribe_move '[5,2]' >/dev/null +scribe_set_player_team o +scribe_move '[3,2]' >/dev/null +scribe_set_player_team + +result=$(scribe_move '[2,7]') +test "$result" = '{"legal":true}' +TEST_END + +TEST "Player o forms Ottoman glyph" +scribe_set_player_team o +scribe_move '[2,3]' >/dev/null +scribe_set_player_team + +scribe_move '[7,7]' >/dev/null +scribe_set_player_team o +scribe_move '[3,5]' >/dev/null +scribe_set_player_team + +scribe_move '[7,2]' >/dev/null +scribe_set_player_team o +scribe_move '[5,3]' >/dev/null +scribe_set_player_team + +scribe_move '[7,6]' >/dev/null +scribe_set_player_team o +result=$(scribe_move '[3,8]') +test "$result"='{"legal":true}' +TEST_END + +TEST "Player + forms J glyph" +scribe_set_player_team + +scribe_move '[6,1]' >/dev/null +scribe_set_player_team o +scribe_move '[8,7]' >/dev/null +scribe_set_player_team + +scribe_move '[5,5]' >/dev/null +scribe_set_player_team o +scribe_move '[7,5]' >/dev/null +scribe_set_player_team + +result=$(scribe_move '[5,7]') +test "$result"='{"legal":true}' +TEST_END + TEST_SECTION "Empathy game" TEST_SUBSECTION "Create a game and register 3 players"