7#include <gmock/gmock.h>
31 int max_count, SimTime started_time),
34 (
const unsigned long ruleset_id,
const QNodeAddr partner_addr,
const int shared_rule_tag,
const int sequence_number,
const int measurement_result,
38 (
const unsigned long ruleset_id,
const QNodeAddr partner_addr,
const QNodeAddr new_partner_addr,
const int shared_rule_tag,
const int sequence_number,
39 const int frame_correction),
50 for (
auto& it : rt.
qubits) {
51 auto& [_, rule_id] = it.first;
The QubitRecord interface.
Definition IQubitRecord.h:17
The Runtime executable Rule in a RuleSet.
Definition RuleSet.h:40
Runtime class is responsible for executing the given RuleSet and the states' management.
Definition Runtime.h:48
QubitResources qubits
This stores the entangled qubits that are assigned to the ruleset.
Definition Runtime.h:384
MOCK_METHOD(MeasurementOutcome, measureQubitRandomly,(IQubitRecord *),(override))
MOCK_METHOD(bool, isQubitLocked,(IQubitRecord *const),(override))
MOCK_METHOD(MeasurementOutcome, measureQubitX,(IQubitRecord *),(override))
MOCK_METHOD(int, purifyY,(IQubitRecord *, IQubitRecord *),(override))
MOCK_METHOD(void, gateZ,(IQubitRecord *),(override))
MOCK_METHOD(void, gateCNOT,(IQubitRecord *, IQubitRecord *),(override))
MOCK_METHOD(void, sendLinkTomographyResult,(const unsigned long ruleset_id, const quisp::runtime::Rule &rule, const int action_index, QNodeAddr partner_addr, int count, MeasurementOutcome outcome, int max_count, SimTime started_time),(override))
MOCK_METHOD(int, getActionIndex,(IQubitRecord *const),(override))
MOCK_METHOD(MeasurementOutcome, measureQubitZ,(IQubitRecord *),(override))
MOCK_METHOD(int, purifyZ,(IQubitRecord *, IQubitRecord *),(override))
MOCK_METHOD(void, freeAndResetQubit,(IQubitRecord *),(override))
MOCK_METHOD(void, gateX,(IQubitRecord *),(override))
MOCK_METHOD(void, gateY,(IQubitRecord *),(override))
MOCK_METHOD(MeasurementOutcome, measureQubitY,(IQubitRecord *),(override))
MOCK_METHOD(int, purifyX,(IQubitRecord *, IQubitRecord *),(override))
MOCK_METHOD(void, sendPurificationResult,(const unsigned long ruleset_id, const QNodeAddr partner_addr, const int shared_rule_tag, const int sequence_number, const int measurement_result, quisp::runtime::PurType protocol),(override))
MOCK_METHOD(void, lockQubit,(IQubitRecord *const, unsigned long rs_id, int rule_id, int action_index),(override))
MOCK_METHOD(void, sendSwappingResult,(const unsigned long ruleset_id, const QNodeAddr partner_addr, const QNodeAddr new_partner_addr, const int shared_rule_tag, const int sequence_number, const int frame_correction),(override))
int RuleId
Definition types.h:18
int PurType
purification type for Instructions. see rules::PurType enum.
Definition types.h:45
static int getResourceSizeByRuleId(quisp::runtime::Runtime &rt, quisp::runtime::RuleId id)
count the number of qubit resources assigned to the rule.
Definition test.h:48
this file contains the definitions of all the user-defined types widely used alongside the runtime::R...
internal class to describe QNode's address.
Definition types.h:70
ICallBack is an interface for the callback of the Runtime.
Definition Runtime.h:58
virtual MeasurementOutcome measureQubitRandomly(IQubitRecord *)=0
virtual MeasurementOutcome measureQubitX(IQubitRecord *)=0
virtual MeasurementOutcome measureQubitY(IQubitRecord *)=0
virtual MeasurementOutcome measureQubitZ(IQubitRecord *)=0
virtual void sendLinkTomographyResult(const unsigned long ruleset_id, const Rule &rule, const int action_index, const QNodeAddr partner_addr, int count, MeasurementOutcome outcome, int max_count, Time start_time)=0
virtual int purifyX(IQubitRecord *qubit_rec, IQubitRecord *trash_qubit_rec)=0
virtual void gateX(IQubitRecord *)=0
virtual void sendSwappingResult(const unsigned long ruleset_id, const QNodeAddr partner_addr, const QNodeAddr new_partner_addr, const int shared_rule_tag, const int sequence_number, const int frame_correction)=0
virtual void freeAndResetQubit(IQubitRecord *)=0
virtual void sendPurificationResult(const unsigned long ruleset_id, const QNodeAddr partner_addr, const int shared_rule_tag, const int sequence_number, const int measurement_result, PurType protocol)=0
virtual int purifyY(IQubitRecord *qubit_rec, IQubitRecord *trash_qubit_rec)=0
virtual int getActionIndex(IQubitRecord *const)=0
virtual void gateY(IQubitRecord *)=0
virtual bool isQubitLocked(IQubitRecord *const)=0
virtual int purifyZ(IQubitRecord *qubit_rec, IQubitRecord *trash_qubit_rec)=0
virtual void lockQubit(IQubitRecord *const, unsigned long rs_id, int rule_id, int action_index)=0
virtual void gateCNOT(IQubitRecord *control_qubit_rec, IQubitRecord *target_qubit_rec)=0
virtual void gateZ(IQubitRecord *)=0