As I understand chess rules, insufficient material means K vs. K, K vs. KB, or K vs. KN. (Correct me if I am wrong.)
But what about KB vs. KB when both bishops are in the same colored square? Am I right that that kind of position also will end up with a draw even if one player makes inaccurate moves?
Also, theoretically, there is a way to get position K vs. KBB where both bishops are in the same colored squares (if you promote your pawn to the bishop). Can this position also include to that rule?
What other theoretical positions may there be, which are 100% draws?
I ask this question as a programmer, not as a chess player, and the main purpose of this topic is to "teach" computers to understand the insufficient material rule.