Skip to content

Commit 361d011

Browse files
committed
shorten
1 parent 54f9eeb commit 361d011

File tree

1 file changed

+28
-89
lines changed

1 file changed

+28
-89
lines changed

src/chess/attacks.rs

Lines changed: 28 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,8 @@ mod tests {
437437
nodes
438438
}
439439

440-
fn split_perft(pos: &Position, depth: u32) -> u64 {
440+
fn split_perft(fen: &str, depth: u32) -> u64 {
441+
let pos = Position::from_fen(fen).unwrap();
441442
let moves = pseudo_legal_moves(&pos);
442443
let mut total_nodes = 0;
443444

@@ -493,42 +494,34 @@ mod tests {
493494

494495
#[test]
495496
fn test_perft_startpos_depth_1() {
496-
let pos = &Position::from_fen(STARTPOS).unwrap();
497-
assert_eq!(split_perft(pos, 1), 20);
497+
assert_eq!(split_perft(STARTPOS, 1), 20);
498498
}
499499

500500
#[test]
501501
fn test_perft_startpos_depth_2() {
502-
assert_eq!(split_perft(&Position::from_fen(STARTPOS).unwrap(), 2), 400);
502+
assert_eq!(split_perft(STARTPOS, 2), 400);
503503
}
504504

505505
#[test]
506506
fn test_perft_startpos_depth_3() {
507-
assert_eq!(split_perft(&Position::from_fen(STARTPOS).unwrap(), 3), 8902);
507+
assert_eq!(split_perft(STARTPOS, 3), 8902);
508508
}
509509

510510
#[test]
511511
fn test_perft_startpos_depth_4() {
512-
assert_eq!(
513-
split_perft(&Position::from_fen(STARTPOS).unwrap(), 4),
514-
197281
515-
);
512+
assert_eq!(split_perft(STARTPOS, 4), 197281);
516513
}
517514

518515
#[test]
519516
fn test_perft_startpos_depth_5() {
520-
assert_eq!(
521-
split_perft(&Position::from_fen(STARTPOS).unwrap(), 5),
522-
4865609
523-
);
517+
assert_eq!(split_perft(STARTPOS, 5), 4865609);
524518
}
525519

526520
#[test]
527521
fn test_perft_startpos_depth_7() {
528522
assert_eq!(
529523
split_perft(
530-
&Position::from_fen("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1")
531-
.unwrap(),
524+
"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",
532525
7
533526
),
534527
3195901860
@@ -539,8 +532,7 @@ mod tests {
539532
fn test_perft_custom_position_1() {
540533
assert_eq!(
541534
split_perft(
542-
&Position::from_fen("rnbqkbnr/ppp1pppp/3p4/8/8/2P5/PP1PPPPP/RNBQKBNR w KQkq - 0 2")
543-
.unwrap(),
535+
"rnbqkbnr/ppp1pppp/3p4/8/8/2P5/PP1PPPPP/RNBQKBNR w KQkq - 0 2",
544536
1
545537
),
546538
21
@@ -551,8 +543,7 @@ mod tests {
551543
fn test_perft_custom_position_2() {
552544
assert_eq!(
553545
split_perft(
554-
&Position::from_fen("rnbqkbnr/pppppppp/8/8/8/2P5/PP1PPPPP/RNBQKBNR b KQkq - 0 1")
555-
.unwrap(),
546+
"rnbqkbnr/pppppppp/8/8/8/2P5/PP1PPPPP/RNBQKBNR b KQkq - 0 1",
556547
2
557548
),
558549
420
@@ -563,10 +554,7 @@ mod tests {
563554
fn test_perft_castle_position() {
564555
assert_eq!(
565556
split_perft(
566-
&Position::from_fen(
567-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1"
568-
)
569-
.unwrap(),
557+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1",
570558
1
571559
),
572560
48
@@ -577,10 +565,7 @@ mod tests {
577565
fn test_perft_complex_position_1() {
578566
assert_eq!(
579567
split_perft(
580-
&Position::from_fen(
581-
"r3k2r/p1ppqpb1/bnN1pnp1/3P4/1p2P3/2N2Q1p/PPPBBPPP/R3K2R b KQkq - 1 1"
582-
)
583-
.unwrap(),
568+
"r3k2r/p1ppqpb1/bnN1pnp1/3P4/1p2P3/2N2Q1p/PPPBBPPP/R3K2R b KQkq - 1 1",
584569
1
585570
),
586571
41
@@ -591,10 +576,7 @@ mod tests {
591576
fn test_perft_complex_position_2() {
592577
assert_eq!(
593578
split_perft(
594-
&Position::from_fen(
595-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/P1N2Q2/1PPBBPpP/R3K2R w KQkq - 0 2"
596-
)
597-
.unwrap(),
579+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/P1N2Q2/1PPBBPpP/R3K2R w KQkq - 0 2",
598580
1
599581
),
600582
48
@@ -605,10 +587,7 @@ mod tests {
605587
fn test_perft_complex_position_32() {
606588
assert_eq!(
607589
split_perft(
608-
&Position::from_fen(
609-
"r3k2r/p1pNqpb1/bn2pnp1/3P4/1p2P3/2N2Q1p/PPPBBPPP/R3K2R b KQkq - 0 1"
610-
)
611-
.unwrap(),
590+
"r3k2r/p1pNqpb1/bn2pnp1/3P4/1p2P3/2N2Q1p/PPPBBPPP/R3K2R b KQkq - 0 1",
612591
1
613592
),
614593
45
@@ -619,10 +598,7 @@ mod tests {
619598
fn test_perft_complex_position_3() {
620599
assert_eq!(
621600
split_perft(
622-
&Position::from_fen(
623-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1"
624-
)
625-
.unwrap(),
601+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1",
626602
2
627603
),
628604
2039
@@ -633,10 +609,7 @@ mod tests {
633609
fn test_perft_complex_position_4() {
634610
assert_eq!(
635611
split_perft(
636-
&Position::from_fen(
637-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/P1N2Q1p/1PPBBPPP/R3K2R b KQkq - 0 1"
638-
)
639-
.unwrap(),
612+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/P1N2Q1p/1PPBBPPP/R3K2R b KQkq - 0 1",
640613
2
641614
),
642615
2186
@@ -647,10 +620,7 @@ mod tests {
647620
fn test_perft_complex_position_25() {
648621
assert_eq!(
649622
split_perft(
650-
&Position::from_fen(
651-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/5Q2/PPPBBPpP/RN2K2R w KQkq - 0 2"
652-
)
653-
.unwrap(),
623+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/5Q2/PPPBBPpP/RN2K2R w KQkq - 0 2",
654624
1
655625
),
656626
47
@@ -661,10 +631,7 @@ mod tests {
661631
fn test_perft_complex_position_5() {
662632
assert_eq!(
663633
split_perft(
664-
&Position::from_fen(
665-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1"
666-
)
667-
.unwrap(),
634+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1",
668635
3
669636
),
670637
97862
@@ -675,10 +642,7 @@ mod tests {
675642
fn test_perft_complex_position_6() {
676643
assert_eq!(
677644
split_perft(
678-
&Position::from_fen(
679-
"r3k2r/p1p1qpb1/bn1ppnp1/1B1PN3/1p2P3/P1N2Q1p/1PPB1PPP/R3K2R b KQkq - 1 2"
680-
)
681-
.unwrap(),
645+
"r3k2r/p1p1qpb1/bn1ppnp1/1B1PN3/1p2P3/P1N2Q1p/1PPB1PPP/R3K2R b KQkq - 1 2",
682646
1
683647
),
684648
7
@@ -689,10 +653,7 @@ mod tests {
689653
fn test_perft_complex_position_7() {
690654
assert_eq!(
691655
split_perft(
692-
&Position::from_fen(
693-
"r3k2r/p1p1qpb1/bn1ppnp1/3PN3/1p2P3/P1N2Q1p/1PPBBPPP/R3K2R w KQkq - 0 2"
694-
)
695-
.unwrap(),
656+
"r3k2r/p1p1qpb1/bn1ppnp1/3PN3/1p2P3/P1N2Q1p/1PPBBPPP/R3K2R w KQkq - 0 2",
696657
2
697658
),
698659
2135
@@ -703,10 +664,7 @@ mod tests {
703664
fn test_perft_complex_position_8() {
704665
assert_eq!(
705666
split_perft(
706-
&Position::from_fen(
707-
"r3k2r/p1ppqpb1/bn2p1p1/3PN3/1p2n3/P1N2Q1p/1PPBBPPP/R3K2R w KQkq - 0 2"
708-
)
709-
.unwrap(),
667+
"r3k2r/p1ppqpb1/bn2p1p1/3PN3/1p2n3/P1N2Q1p/1PPBBPPP/R3K2R w KQkq - 0 2",
710668
2
711669
),
712670
2717
@@ -717,10 +675,7 @@ mod tests {
717675
fn test_perft_complex_position_9() {
718676
assert_eq!(
719677
split_perft(
720-
&Position::from_fen(
721-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/P1N2Q1p/1PPBBPPP/R3K2R b KQkq - 0 1"
722-
)
723-
.unwrap(),
678+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/P1N2Q1p/1PPBBPPP/R3K2R b KQkq - 0 1",
724679
3
725680
),
726681
94405
@@ -731,10 +686,7 @@ mod tests {
731686
fn test_perft_complex_position_10() {
732687
assert_eq!(
733688
split_perft(
734-
&Position::from_fen(
735-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1"
736-
)
737-
.unwrap(),
689+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1",
738690
4
739691
),
740692
4085603
@@ -745,10 +697,7 @@ mod tests {
745697
fn test_perft_complex_position_11() {
746698
assert_eq!(
747699
split_perft(
748-
&Position::from_fen(
749-
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1"
750-
)
751-
.unwrap(),
700+
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1",
752701
5
753702
),
754703
193690690
@@ -758,10 +707,7 @@ mod tests {
758707
#[test]
759708
fn test_perft_endgame_position() {
760709
assert_eq!(
761-
split_perft(
762-
&Position::from_fen("8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1").unwrap(),
763-
7
764-
),
710+
split_perft("8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1", 7),
765711
178633661
766712
);
767713
}
@@ -770,10 +716,7 @@ mod tests {
770716
fn test_perft_tactical_position_1() {
771717
assert_eq!(
772718
split_perft(
773-
&&Position::from_fen(
774-
"r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1"
775-
)
776-
.unwrap(),
719+
"r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1",
777720
6
778721
),
779722
706045033
@@ -784,8 +727,7 @@ mod tests {
784727
fn test_perft_tactical_position_2() {
785728
assert_eq!(
786729
split_perft(
787-
&Position::from_fen("rnbq1k1r/pp1Pbppp/2p5/8/2B5/8/PPP1NnPP/RNBQK2R w KQ - 1 8")
788-
.unwrap(),
730+
"rnbq1k1r/pp1Pbppp/2p5/8/2B5/8/PPP1NnPP/RNBQK2R w KQ - 1 8",
789731
5
790732
),
791733
89941194
@@ -796,10 +738,7 @@ mod tests {
796738
fn test_perft_tactical_position_3() {
797739
assert_eq!(
798740
split_perft(
799-
&Position::from_fen(
800-
"r4rk1/1pp1qppp/p1np1n2/2b1p1B1/2B1P1b1/P1NP1N2/1PP1QPPP/R4RK1 w - - 0 1"
801-
)
802-
.unwrap(),
741+
"r4rk1/1pp1qppp/p1np1n2/2b1p1B1/2B1P1b1/P1NP1N2/1PP1QPPP/R4RK1 w - - 0 1",
803742
5
804743
),
805744
164075551

0 commit comments

Comments
 (0)