diff --git a/qualtran/surface_code/data_block.py b/qualtran/surface_code/data_block.py index c0237613c..6d1eea99f 100644 --- a/qualtran/surface_code/data_block.py +++ b/qualtran/surface_code/data_block.py @@ -167,7 +167,7 @@ class CompactDataBlock(DataBlock): data_d: int def n_tiles(self, n_algo_qubits: int) -> int: - return math.ceil(1.5 * n_algo_qubits) + return math.ceil(1.5 * (n_algo_qubits + 2)) @property def n_steps_to_consume_a_magic_state(self) -> int: diff --git a/qualtran/surface_code/data_block_test.py b/qualtran/surface_code/data_block_test.py index 86931572a..89f75208b 100644 --- a/qualtran/surface_code/data_block_test.py +++ b/qualtran/surface_code/data_block_test.py @@ -15,7 +15,7 @@ import pytest -from qualtran.surface_code import FastDataBlock, LogicalErrorModel, QECScheme +from qualtran.surface_code import CompactDataBlock, FastDataBlock, LogicalErrorModel, QECScheme @pytest.mark.parametrize( @@ -28,3 +28,10 @@ def test_fast_block(logical_qubits, logical_qubits_with_routing, data_error): assert FastDataBlock(3).data_error( n_algo_qubits=logical_qubits, n_cycles=3, logical_error_model=err_model ) == pytest.approx(data_error) + +@pytest.mark.parametrize( + ["n_algo_qubits", "n_tiles"], + [[2,6],[4,9],[100,153]] +) +def test_compact_block(n_algo_qubits, n_tiles): + assert CompactDataBlock(data_d=17).n_tiles(n_algo_qubits=n_algo_qubits) == n_tiles