Three approaches for analyzing the counterfactuality of counterfactual protocols