def test_measurement_plan_json(): lattice = Lattice([24, 2]) wf = FreeFermionWavefunction(lattice=lattice, orbitals=[Bands([8, 4], [periodic_bc, periodic_bc])]) subsystem = SimpleSubsystem([8, 2], lattice) renyi_modpossible_plan = RenyiModPossibleMeasurementPlan(wf, subsystem) assert BasicMeasurementPlan.from_json(renyi_modpossible_plan.to_json(), wf) == renyi_modpossible_plan assert RenyiModPossibleMeasurementPlan.from_json(renyi_modpossible_plan.to_json(), wf) == renyi_modpossible_plan renyi_sign_plan = RenyiSignMeasurementPlan(wf, subsystem) assert BasicMeasurementPlan.from_json(renyi_sign_plan.to_json(), wf) == renyi_sign_plan assert RenyiSignMeasurementPlan.from_json(renyi_sign_plan.to_json(), wf) == renyi_sign_plan with pytest.raises(Exception): RenyiSignMeasurementPlan.from_json(renyi_modpossible_plan.to_json(), wf)
def test_measurement_plan_json(): lattice = Lattice([24, 2]) wf = FreeFermionWavefunction(lattice=lattice, orbitals=[Bands([8, 4], [periodic_bc, periodic_bc])]) subsystem = SimpleSubsystem([8, 2], lattice) sonpm_plan = SubsystemOccupationProbabilityMeasurementPlan(wf, subsystem, steps_per_measurement=500) assert BasicMeasurementPlan.from_json(sonpm_plan.to_json(), wf) == sonpm_plan assert SubsystemOccupationProbabilityMeasurementPlan.from_json(sonpm_plan.to_json(), wf) == sonpm_plan