Answers.Body: <p>Yes, a double check is when two pieces give check at the same time. It doesn't matter how you got to that position. As to whether there's an error on that wiki, it's probably best to try to ask its author. Maybe they can provide the full list of positions for you to compare.</p>
  
  <p>I can think of two ways of giving double check while promoting. One is where you have say the black king in front of the white pawn, and a white queen or rook behind the pawn, and the pawn promotes with a capture, ending up as a new white queen or rook next to the black king. The other is where say the black king is on the seventh rank, white has a rook or queen on the other side of the pawn, and White promotes to a knight, queen or bishop giving check.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-20T22:30:24.963Z
Answers.Text: Thank you for the feedback. The author of perft results is Peter McKenzie, worker of Google. I found him LinkedIn profile and send him a message. Maybe he can answer me.
Answers.UserDisplayName: Welyab Paula
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-01-20T08:32:50.630Z
Answers.Text: Another way is e.g. bKe6, wPd7, wBc8, d8=N++.
Answers.UserDisplayName: Rosie F
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-20T13:17:40.993Z
Answers.LastActivityDate: 2019-09-20T13:17:40.993Z
Answers.UserDisplayName: itub
Answers.Body: <p>Yes, the case you mentioned would also qualify as a double check.</p>
  
  <p>But it also depends on what your definitions are. If the Perft result does consider that to not be a double check, it doesn't mean you have to abide by it.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-20T22:14:24.270Z
Answers.LastActivityDate: 2019-09-20T22:14:24.270Z
Answers.UserDisplayName: Inertial Ignorance
Body: <p>I'm writing a chess engine just for fun, and during the validation of movement generation, I found some positions in Perft Results that differ from what my engine is producing.</p>
  
  <p>As an example, take the below position.</p>
  
  <pre><code>[FEN "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1"]
  </code></pre>
  
  <p>I found in the <a href="https://www.chessprogramming.org/Perft_Result" rel="nofollow noreferrer">Chess programming wiki</a>, the number of possible positions in depth 5 is 193690690, and my program matches this value.</p>
  
  <p>However, regarding the number of possible double checks, my program found 8 more positions. The Perft Results from the Wiki indicate a total of 2637, while I found 2645.</p>
  
  <p>I don't know what to think. Maybe the Perft Result from the Wiki does not consider positions where a pawn promotes with check whilst revealing a check, aka a discovered check. But there are only 6 moves where a pawn promotion results in a double check (3 positions, where the pawn may promote to queen or rook). Are the positions from Wiki wrong?</p>
  
  <p>If someone wants to look at the positions, they can be found <a href="https://drive.google.com/file/d/1vmqimjJzRntsLJeM28uURaQbxjMxl6ei/view?usp=sharing" rel="nofollow noreferrer">here on Google Drive</a>.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-09-28T22:58:08.223Z
Comments.Text: Yes, a double check is a double check.
Comments.UserDisplayName: Inertial Ignorance
Tags: <engines><programming><pawn-promotion><performance><double-check>
Title: If a pawn promotes to a checking piece while also revealing a check, it is a double check?
ThreadText: # If a pawn promotes to a checking piece while also revealing a check, it is a double check?
  
  (Asked by: username_0 on 2019-09-20)
  
  I'm writing a chess engine just for fun, and during the validation of movement generation, I found some positions in Perft Results that differ from what my engine is producing.
  As an example, take the below position.
  [FEN "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1"]
  
  I found in the Chess programming wiki, the number of possible positions in depth 5 is 193690690, and my program matches this value.
  However, regarding the number of possible double checks, my program found 8 more positions. The Perft Results from the Wiki indicate a total of 2637, while I found 2645.
  I don't know what to think. Maybe the Perft Result from the Wiki does not consider positions where a pawn promotes with check whilst revealing a check, aka a discovered check. But there are only 6 moves where a pawn promotion results in a double check (3 positions, where the pawn may promote to queen or rook). Are the positions from Wiki wrong?
  If someone wants to look at the positions, they can be found here on Google Drive.
  
  **Tags:** engines, programming, pawn-promotion, performance, double-check
  
  > **Comments:**
  > **username_1**: Yes, a double check is a double check.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2019-09-20. Score: 6
  
  Yes, a double check is when two pieces give check at the same time. It doesn't matter how you got to that position. As to whether there's an error on that wiki, it's probably best to try to ask its author. Maybe they can provide the full list of positions for you to compare.
  
  I can think of two ways of giving double check while promoting. One is where you have say the black king in front of the white pawn, and a white queen or rook behind the pawn, and the pawn promotes with a capture, ending up as a new white queen or rook next to the black king. The other is where say the black king is on the seventh rank, white has a rook or queen on the other side of the pawn, and White promotes to a knight, queen or bishop giving check.
  
  > **Comments:**
  > **username_0**: Thank you for the feedback. The author of perft results is Peter McKenzie, worker of Google. I found him LinkedIn profile and send him a message. Maybe he can answer me.  
  > **username_3**: Another way is e.g. bKe6, wPd7, wBc8, d8=N++.  
  
  ---
  
  ### Answer by username_1 on 2019-09-20. Score: 3
  
  Yes, the case you mentioned would also qualify as a double check.
  
  But it also depends on what your definitions are. If the Perft result does consider that to not be a double check, it doesn't mean you have to abide by it.
  
  
  ---
  
  