Пример #1
0
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)
Пример #2
0
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