def test_file_error_model_generate_no_more_errors_available(): fem = FileErrorModel(os.path.join(FILES_DIR, 'no_more_errors_available.jsonl')) fqc = FiveQubitCode() with pytest.raises(EOFError): fem.generate(fqc, 0.4) fem.generate(fqc, 0.4) fem.generate(fqc, 0.4)
def test_file_error_model_generate_skip_to_start(): print() fem = FileErrorModel(os.path.join(FILES_DIR, 'fivequbitcode-errors-p0.4-bias10.jsonl'), 4) fqc = FiveQubitCode() packed_errors = ( pt.pack(fem.generate(fqc, 0.4)), pt.pack(fem.generate(fqc, 0.4)), pt.pack(fem.generate(fqc, 0.4)), ) expected_packed_errors = (("8400", 10), ("5280", 10), ("1080", 10)) assert packed_errors == expected_packed_errors
def test_file_error_model_generate(): fem = FileErrorModel(os.path.join(FILES_DIR, 'fivequbitcode-errors-p0.4-bias10.jsonl')) fqc = FiveQubitCode() for _ in range(10): error = fem.generate(fqc, 0.4) assert isinstance(error, np.ndarray) assert len(error) == 10
def test_file_error_model_generate_incorrect_length_in_packed_error(filename): fem = FileErrorModel(filename) fqc = FiveQubitCode() with pytest.raises(ValueError): fem.generate(fqc, 0.4)
def test_file_error_model_generate_invalid_error_lines(): fem = FileErrorModel(os.path.join(FILES_DIR, 'header_lines_after_body_lines.jsonl')) fqc = FiveQubitCode() with pytest.raises(ValueError): fem.generate(fqc, 0.4) fem.generate(fqc, 0.4)
def test_file_error_model_generate_invalid_probability_parameter(): fem = FileErrorModel(os.path.join(FILES_DIR, 'fivequbitcode-errors-p0.4-bias10.jsonl')) fqc = FiveQubitCode() with pytest.raises(ValueError): fem.generate(fqc, 0.3)