I am wondering what is the best way to test fine tuning of move ordering?
I follow a traditional approach in this order:
* Hash
* Captures
* Killers
* Silent moves:
** Promotions
** Special Pawns
** Checking moves
** Castling
** History moves
I do keep a percentage stat on my killers and how often they cause a BETA. I used to keep a stat on how often the PV move is in the top 10% of moves and specifically the hash move.
When I reorder some of the silent moves, the stats hardly change. I believe that as I progress deeper into the area of ordering, many nodes, for example, do not have promotions and even when they do they are not necessarily always the best PV move. This should apply to each type of move I am ordering.
I have added ordering for passed pawns and even pawn pushes to 7th and 6th ranks when in the "silent move" category (the special pawns I refer to above). The question is how to truly identify if it is working there.
I have tested a set depth perspective on several test positions. The time to reach that depth with the ordered special pawn moves is +/- 5ms but the node count/moves play has increased. So, although moves per second increased, I do not really think the engine is any faster. Or am I wrong here?
I am thinking about tracking the frequency at which these moves are encountered and if they are the PV or CUT move. I already have the structured code, just need to do it
Is my line of thinking correct? Or, is there something else I can track or look at to prove out I am ordering moves optimally for both CUT and PV with any of the silent moves? Maybe I should not bother with ordering the special pawn moves (or others), but I am doing this to also help flag the moves when I am ready to implement extensions and futility pruning.
Thank you

