QuISP
Loading...
Searching...
No Matches
test.h
Go to the documentation of this file.
1
5#pragma once
6
7#include <gmock/gmock.h>
8#include "Runtime.h"
9#include "types.h"
10
11namespace quisp_test {
15
17 public:
22 MOCK_METHOD(void, gateX, (IQubitRecord*), (override));
23 MOCK_METHOD(void, gateY, (IQubitRecord*), (override));
24 MOCK_METHOD(void, gateZ, (IQubitRecord*), (override));
30 (const unsigned long ruleset_id, const quisp::runtime::Rule& rule, const int action_index, QNodeAddr partner_addr, int count, MeasurementOutcome outcome,
31 int max_count, SimTime started_time),
32 (override));
34 (const unsigned long ruleset_id, const QNodeAddr partner_addr, const int shared_rule_tag, const int sequence_number, const int measurement_result,
36 (override));
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),
40 (override));
42 MOCK_METHOD(bool, isQubitLocked, (IQubitRecord* const), (override));
43 MOCK_METHOD(void, lockQubit, (IQubitRecord* const, unsigned long rs_id, int rule_id, int action_index), (override));
44 MOCK_METHOD(int, getActionIndex, (IQubitRecord* const), (override));
45};
46
49 int count = 0;
50 for (auto& it : rt.qubits) {
51 auto& [_, rule_id] = it.first;
52 if (rule_id == id) {
53 count++;
54 }
55 }
56 return count;
57}
58} // namespace quisp_test
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
Definition test.h:15
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