def _correct_parsers_in_order(self, strict):
<EOL>for i in range(<NUM_LIT:1>, <NUM_LIT:10>):<EOL><INDENT>r = self.create_shuffled_registry()<EOL>typ = self.A<EOL>if strict:<EOL><INDENT>self._correct_parsers_in_order_specific_type(r, typ, self.all_parsers_for_a)<EOL><DEDENT>else:<EOL><INDENT>self._correct_parsers_in_order_specific_type(r, typ, self.all_parsers_for_a, self.all_parsers_for_b)<EOL><DEDENT>typ = self.B<EOL>self._correct_parsers_in_order_specific_type(r, typ, self.all_parsers_for_b)<EOL>typ = self.C<EOL>if strict:<EOL><INDENT>self._correct_parsers_in_order_specific_type(r, typ, self.all_parsers_for_c)<EOL><DEDENT>else:<EOL><INDENT>self._correct_parsers_in_order_specific_type(r, typ, self.all_parsers_for_c, self.all_parsers_for_d)<EOL><DEDENT>typ = self.D<EOL>self._correct_parsers_in_order_specific_type(r, typ, self.all_parsers_for_d)<EOL><DEDENT>pass<EOL>
Tests that the correct parsers are returned in the right order by find_all_matching_parsers for each queried
type (A, B, C, D) whatever the file extension put in the query.
 * For A, the reference is self.all_parsers_for_a (strict) and self.all_parsers_for_b (in non-strict mode)
 since B is a subcless of A
 * for B, the reference is self.all_parsers_for_b in both modes
 * For C, the reference is self.all_parsers_for_c (strict) and self.all_parsers_for_d (in non-strict mode)
 since D is a subcless of C
 * for D, the reference is self.all_parsers_for_d in both modes

:return: