3 # This file is part of Language::Befunge.
4 # Copyright (c) 2001-2008 Jerome Quelin, all rights reserved.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the same terms as Perl itself.
11 # -- direction changing
16 use Test::More tests => 19;
19 use Language::Befunge;
20 my $bef = Language::Befunge->new;
24 $bef->store_code( '<q.a' );
25 stdout_is { $bef->run_code } '10 ', 'go west';
29 $bef->store_code( <<'END_OF_CODE' );
35 stdout_is { $bef->run_code } '10 ', 'go south';
39 $bef->store_code( <<'END_OF_CODE' );
45 stdout_is { $bef->run_code } '10 ', 'go north';
49 $bef->store_code( <<'END_OF_CODE' );
53 stdout_is { $bef->run_code } '10 ', 'go east';
57 $bef->store_code( <<'END_OF_CODE' );
63 stdout_like { $bef->run_code } qr/^[1-4] $/, 'go away';
67 $bef->store_code( <<'END_OF_CODE' );
72 stdout_is { $bef->run_code } '1 ', 'turn left, from west';
73 $bef->store_code( <<'END_OF_CODE' );
78 stdout_is { $bef->run_code } '2 ', 'turn left, from east';
79 $bef->store_code( <<'END_OF_CODE' );
83 stdout_is { $bef->run_code } '1 ', 'turn left, from north';
84 $bef->store_code( <<'END_OF_CODE' );
88 stdout_is { $bef->run_code } '2 ', 'turn left, from south';
92 $bef->store_code( <<'END_OF_CODE' );
97 stdout_is { $bef->run_code } '2 ', 'turn right, from west';
98 $bef->store_code( <<'END_OF_CODE' );
103 stdout_is { $bef->run_code } '1 ', 'turn right, from east';
104 $bef->store_code( <<'END_OF_CODE' );
108 stdout_is { $bef->run_code } '2 ', 'turn right, from north';
109 $bef->store_code( <<'END_OF_CODE' );
113 stdout_is { $bef->run_code } '1 ', 'turn right, from south';
117 $bef->store_code( <<'END_OF_CODE' );
121 stdout_is { $bef->run_code } '1 ', 'reverse, from west';
122 $bef->store_code( <<'END_OF_CODE' );
126 stdout_is { $bef->run_code } '1 ', 'reverse, from east';
127 $bef->store_code( <<'END_OF_CODE' );
134 stdout_is { $bef->run_code } '1 ', 'reverse, from north';
135 $bef->store_code( <<'END_OF_CODE' );
142 stdout_is { $bef->run_code } '1 ', 'reverse, from south';
146 $bef->store_code( <<'END_OF_CODE' );
152 stdout_is { $bef->run_code } '1 ', 'absolute vectore, diagonal';
153 $bef->store_code( <<'END_OF_CODE' );
159 stdout_is { $bef->run_code } '1 ', 'absolute vectore, diagonal out of bounds';