package comp1110.exam;
import org.junit.FixMethodOrder;
import org.junit.Rule;
Copyright By PowCoder代写 加微信 powcoder
import org.junit.Test;
import org.junit.rules.Timeout;
import org.junit.runners.MethodSorters;
import static org.junit.Assert.assertTrue;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class Q1BishopTest {
public Timeout globalTimeout = Timeout.millis(1000);
static String board = “.oo.oooo.o..o…..o………………o………..*.*….*.**.*..”;
public void testNone() {
test(board, “c8”, -1);
test(board, “a8”, -1);
public void testOne() {
test(“………o…….*.*oo.oo.*.*.*……..*.o….*……..o….o.*.”, “b3”, 1);
// a b c d e f g h
// 8 . . . . o . * .
// 7 . . . . . . . o
// 6 . o . . . . * .
// 5 . . . . . . . *
// 4 o . * . * . * .
// 3 . * . * o o . o
// 2 . o . . . . . .
// 1 . . . . . . . .
test(“……..o….*……o…*.*.*o*…..oo..**.*o………o….o….”, “f2”, 1);
// a b c d e f g h
// 8 . . . o . . . .
// 7 . . . . . . o .
// 6 * * . * o . . .
// 5 . . . . o o . .
// 4 * . * . * o * .
// 3 . . . . o . . .
// 2 o . . . . * . .
// 1 . . . . . . . .
test(“.*..o.o…o..*.*…o………*o*……*..*…..o.o…*.o……..”, “b1”, 1);
// a b c d e f g h
// 8 . . . . . . . .
// 7 . o . . . * . o
// 6 . * . . . . . o
// 5 . . . . . . * .
// 4 . . . . . * o *
// 3 . . . o . . . .
// 2 . . o . . * . *
// 1 . * . . o . o .
test(“…*……………o.*o.o*.*.o.o…*o*o…………..*…….*o.”, “d1”, 1);
// a b c d e f g h
// 8 . . . . . * o .
// 7 . . . . . * . .
// 6 . . . . . . . .
// 5 . . . * o * o .
// 4 o * . * . o . o
// 3 . . . o . * o .
// 2 . . . . . . . .
// 1 . . . * . . . .
test(“……*……..*.*..o…..*.o.o.o…..**o….*……oo…*….o.”, “g1”, 1);
// a b c d e f g h
// 8 . * . . . . o .
// 7 . . . . o o . .
// 6 o . . . . * . .
// 5 o . . . . . * *
// 4 . . * . o . o .
// 3 . * . . o . . .
// 2 . . . . . . . *
// 1 . . . . . . * .
public void testTwo() {
test(“o**.*…….o….o……o*.*.*…..o….o…*….o*…..o…….”, “b1”, 2);
// a b c d e f g h
// 8 o . . . . . . .
// 7 . o * . . . . .
// 6 o . . . * . . .
// 5 . . . o . . . .
// 4 o * . * . * . .
// 3 . o . . . . . .
// 2 . . . . o . . .
// 1 o * * . * . . .
test(“o…*.*….*…o…oo*…………….o*..o…*.o.*………*..o”, “e1”, 2);
// a b c d e f g h
// 8 . . . . * . . o
// 7 o . * . . . . .
// 6 . . o . . . * .
// 5 . . . . . . o *
// 4 . . . . . . . .
// 3 . . . o o * . .
// 2 . . . * . . . o
// 1 o . . . * . * .
test(“o.*..*o………..o*……*.o…*o.o………o.*….*o…….*..”, “c1”, 2);
// a b c d e f g h
// 8 . . . . . * . .
// 7 . . . . * o . .
// 6 . . . . . o . *
// 5 * o . o . . . .
// 4 . . * . o . . .
// 3 . . o * . . . .
// 2 . . . . . . . .
// 1 o . * . . * o .
test(“.o.oo*..o……….*o….*…….**..*..*.o………*….o.o….”, “f1”, 2);
// a b c d e f g h
// 8 . o . o . . . .
// 7 . . . . * . . .
// 6 * . o . . . . .
// 5 . * * . . * . .
// 4 . * . . . . . .
// 3 . . . * o . . .
// 2 o . . . . . . .
// 1 . o . o o * . .
test(“.*….o.*…..o.**…..oo…*oo..o……..*…o…..*……….*”, “b1”, 2);
// a b c d e f g h
// 8 . . . . . . . *
// 7 . . . . * . . .
// 6 . . * . . . o .
// 5 . o . . . . . .
// 4 o . . . * o o .
// 3 * * . . . . . o
// 2 * . . . . . o .
// 1 . * . . . . o .
public void testThree() {
test(“*o….o……oo…..*……………*.o.*.*.o.o…*………o**.”, “a1”, 3);
// a b c d e f g h
// 8 . . . . o * * .
// 7 . . * . . . . .
// 6 * . * . o . o .
// 5 . . . . * . o .
// 4 . . . . . . . .
// 3 . . . . * . . .
// 2 . . . . . o o .
// 1 * o . . . . o .
test(“…*..*…..*…..**..o….o..*…..oo*……..oo…….o…*o..”, “d1”, 3);
// a b c d e f g h
// 8 o . . . * o . .
// 7 o . . . . . . .
// 6 . . . . . . . o
// 5 . . . . o o * .
// 4 . . . o . . * .
// 3 . . * * . . o .
// 2 . . . . * . . .
// 1 . . . * . . * .
test(“……..o..*..*….*….o..*…*.*…..o…..*…o*….o…oo..o”, “d2”, 3);
// a b c d e f g h
// 8 . . . o o . . o
// 7 . o * . . . . o
// 6 . . . . . * . .
// 5 . * . . . . . o
// 4 o . . * . . . *
// 3 . . . * . . . .
// 2 o . . * . . * .
// 1 . . . . . . . .
test(“*..**o…..o……*.*.o….o…..o.*….o….*……….o…..*o”, “a1”, 3);
// a b c d e f g h
// 8 o . . . . . * o
// 7 . . . . . . . .
// 6 o . . . . * . .
// 5 . o . * . . . .
// 4 . . . o . . . .
// 3 . . * . * . o .
// 2 . . . o . . . .
// 1 * . . * * o . .
test(“………*..*..*.o.*..**……o………..o..*o.*….oo…oo….”, “b2”, 3);
// a b c d e f g h
// 8 . . o o . . . .
// 7 * . . . . o o .
// 6 . . o . . * o .
// 5 . . . . . . . .
// 4 . . . . . . o .
// 3 . o . * . . * *
// 2 . * . . * . . *
// 1 . . . . . . . .
public void testFour() {
test(“…..*..oo..*..o…..*…..*oo.*o.*..*………*…o……..o…”, “f1”, 4);
// a b c d e f g h
// 8 . . . . o . . .
// 7 . . . o . . . .
// 6 . . . . . . . *
// 5 o . * . . * . .
// 4 . . . * o o . *
// 3 . . . . . * . .
// 2 o o . . * . . o
// 1 . . . . . * . .
test(“*..o…*…..*..*.*..o…..**……..o.o……*.o…o.o……..o”, “a1”, 4);
// a b c d e f g h
// 8 . . . . . . . o
// 7 o . . . o . o .
// 6 . . . . . . * .
// 5 . . . . . o . o
// 4 . . . * * . . .
// 3 * . * . . o . .
// 2 . . . . . * . .
// 1 * . . o . . . *
test(“…….*o.*..o….o.*…………..*………o..o.*.*.**o..o…o”, “h1”, 4);
// a b c d e f g h
// 8 o . . o . . . o
// 7 o . * . * . * *
// 6 . . . . . o . .
// 5 . . . * . . . .
// 4 . . . . . . . .
// 3 . . o . * . . .
// 2 o . * . . o . .
// 1 . . . . . . . *
test(“…oo..*oo……o..*.*…..*…o*o*…………………*o*…..”, “h1”, 4);
// a b c d e f g h
// 8 * o * . . . . .
// 7 . . . . . . . .
// 6 . . . . . . . .
// 5 * o * . . . . .
// 4 . . . * . . . o
// 3 o . . * . * . .
// 2 o o . . . . . .
// 1 . . . o o . . *
test(“..o…**.oo………*o*..*o*………………….*.*o.o….o…”, “g1”, 4);
// a b c d e f g h
// 8 . . . . o . . .
// 7 . . * . * o . o
// 6 . . . . . . . .
// 5 . . . . . . . .
// 4 . * o * . . . .
// 3 . . . . * o * .
// 2 . o o . . . . .
// 1 . . o . . . * *
private void test(String b, String s, int e) {
int r = Q1Bishop.blackBishopMoves(b, s);
assertTrue(“For board \””+b+”\” and start position \””+s+”\”, expected ‘”+e+”‘ but got ‘”+r+”‘”+”\n”+ Q1Bishop.pretty(b), e == r);
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com