or :class:`~collections.abc.Mapping`'s. In this case the pairs are originated by recursing through them. Args: actual (Any): Actual input. expected (Any): Expected input. pair_types (Sequence[Type[Pair]]): Sequence of pair types that will be tried to construct with the inputs. First successful pair will be used. sequence_types (Tuple[Type, ...]): Optional types treated as sequences that will be checked elementwise. mapping_types (Tuple[Type, ...]): Optional types treated as mappings that will be checked elementwise. id (Tuple[Any, ...]): Optional id of a pair that will be included in an error message. **options (Any): Options passed to each pair during construction. Raises: ErrorMeta: With :class`AssertionError`, if the inputs are :class:`~collections.abc.Sequence`'s, but their length does not match. ErrorMeta: With :class`AssertionError`, if the inputs are :class:`~collections.abc.Mapping`'s, but their set of keys do not match. ErrorMeta: With :class`TypeError`, if no pair is able to handle the inputs. ErrorMeta: With any expected exception that happens during the construction of a pair. Returns: (List[Pair]): Originated pairs. z&The length of the sequences mismatch: r”