import numpy as np

import cirq
from recirq.otoc.loschmidt.tilted_square_lattice import \
    get_all_tilted_square_lattice_executables

EXES_FILENAME = 'loschmidt.tilted_square_lattice.small-cz-v1.json.gz'


def main():
    exes = get_all_tilted_square_lattice_executables(
        min_side_length=2, max_side_length=3, side_length_step=1,
        n_instances=3,
        macrocycle_depths=np.arange(0, 4 + 1, 1),
        twoq_gate_name='cz',
    )
    print(len(exes), 'executables')

    cirq.to_json_gzip(exes, EXES_FILENAME)
    print(f'Wrote {EXES_FILENAME}')


if __name__ == '__main__':
    main()