I like this test (and its use of existing test strings) and the explicit checking on the forward and reverse IDs on each read in the `create_forward_and_reverse_fp` function. Makes the code generally usable for two possible interleaved formats: 1) each forward read followed by its corresponding reverse read, 2) all forward reads followed by all reverse reads. Assuming forward and reverse read order is the same in both cases.