A chess library for Gleam

Add more perft tests

+42
+42
test/starfish_test.gleam
··· 91 91 ]) 92 92 } 93 93 94 + pub fn perft_position2_test_() { 95 + use <- Timeout(1_000_000) 96 + use <- pocket_watch.callback("position 2", print_time) 97 + perft_all( 98 + "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1", 99 + [48, 2039, 97_862, 4_085_603, 193_690_690], 100 + ) 101 + } 102 + 103 + pub fn perft_position3_test_() { 104 + use <- Timeout(1_000_000) 105 + use <- pocket_watch.callback("position 3", print_time) 106 + perft_all("8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1", [ 107 + 14, 191, 2812, 43_238, 674_624, 11_030_083, 178_633_661, 108 + ]) 109 + } 110 + 111 + pub fn perft_position4_test_() { 112 + use <- Timeout(1_000_000) 113 + use <- pocket_watch.callback("position 4", print_time) 114 + perft_all("r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1", [ 115 + 6, 264, 9467, 422_333, 15_833_292, 116 + ]) 117 + } 118 + 119 + pub fn perft_position5_test_() { 120 + use <- Timeout(1_000_000) 121 + use <- pocket_watch.callback("position 5", print_time) 122 + perft_all("rnbq1k1r/pp1Pbppp/2p5/8/2B5/8/PPP1NnPP/RNBQK2R w KQ - 1 8", [ 123 + 44, 1486, 62_379, 2_103_487, 89_941_194, 124 + ]) 125 + } 126 + 127 + pub fn perft_position6_test_() { 128 + use <- Timeout(1_000_000) 129 + use <- pocket_watch.callback("position 6", print_time) 130 + perft_all( 131 + "r4rk1/1pp1qppp/p1np1n2/2b1p1B1/2B1P1b1/P1NP1N2/1PP1QPPP/R4RK1 w - - 0 10", 132 + [46, 2079, 89_890, 3_894_594, 164_075_551], 133 + ) 134 + } 135 + 94 136 fn test_apply_move( 95 137 starting_fen: String, 96 138 moves: List(move.Move(move.Legal)),