pub(crate) fn run(self) {
        if let Some(mut fwd) = self.fwd {
            for seed in SEEDS.iter() {
                for t in seed.generate() {
                    match fwd(&t.haystack, &t.needle, t.index1, t.index2) {
                        None => continue,
                        Some(result) => {
                            assert_eq!(
                                t.fwd, result,
                                "FORWARD, needle: {:?}, haystack: {:?}, \
                                 index1: {:?}, index2: {:?}",
                                t.needle, t.haystack, t.index1, t.index2,
                            )
                        }
                    }
                }
            }
        }
    }
Run all tests. This panics on the first failure.

If the implementation being tested returns `None` for a particular
haystack/needle combination, then that test is skipped.

This runs tests on both the forward and reverse implementations given.
If either (or both) are missing, then tests for that implementation are
skipped.
src/tests/packedpair.rs