# --------------------------------------- #
# --- Test the circuit layer samplers --- #
# --------------------------------------- #
# Tests for the sampling by pairs function
layer = rb.sample.circuit_layer_by_pairings(pspec_1, twoQprob=0.0, oneQgatenames='all', twoQgatenames='all',
gatesetname = 'clifford')
assert(len(layer) == n_1)
layer = rb.sample.circuit_layer_by_pairings(pspec_1, twoQprob=1.0, oneQgatenames='all', twoQgatenames='all',
gatesetname = 'clifford')
assert(len(layer) == n_1//2)
layer = rb.sample.circuit_layer_by_pairings(pspec_1, twoQprob=0.0, oneQgatenames=['Gx',], twoQgatenames='all',
gatesetname = 'target')
assert(layer[0].name == 'Gx')
layer = rb.sample.circuit_layer_by_Qelimination(pspec_2, twoQprob=0.0, oneQgates='all', twoQgates='all',
gatesetname='clifford')
assert(len(layer) == n_2)
layer = rb.sample.circuit_layer_by_Qelimination(pspec_2, twoQprob=1.0, oneQgates='all', twoQgates='all',
gatesetname='clifford')
assert(len(layer) == (n_2 % 2) + n_2//2)
layer = rb.sample.circuit_layer_by_pairings(pspec_1, twoQprob=0.0, oneQgatenames=['Gxpi'], twoQgatenames='all',
gatesetname = 'target')
assert(layer[0].name == 'Gxpi')
# Tests for the sampling by sectors function
C01 = Label('Gcnot',(0,1))
C23 = Label('Gcnot',(2,3))
sectors = [[],[C01,C23]]
layer = rb.sample.circuit_layer_by_sectors(pspec_1, sectors, sectorsprob='uniform', twoQprob=1.0,
oneQgatenames='all', gatesetname='clifford')
assert(len(layer) == n_1 or len(layer) == n_1//2)
layer = rb.sample.circuit_layer_by_sectors(pspec_1, sectors, sectorsprob=[0.,1.], twoQprob=1.0,
oneQgatenames='all', gatesetname='clifford')
assert(len(layer) == n_1//2)
layer = rb.sample.circuit_layer_by_sectors(pspec_1, sectors, sectorsprob=[1.,0.], twoQprob=1.0,
oneQgatenames=['Gx',], gatesetname='clifford')
assert(len(layer) == n_1)
assert(layer[0].name == 'Gx')
layer = rb.sample.circuit_layer_by_sectors(pspec_1, sectors, sectorsprob=[0.25,0.75], twoQprob=0.5,
oneQgatenames='all', gatesetname='clifford')
# Tests for the sampling a layer of 1Q gates.
layer = rb.sample.circuit_layer_of_1Q_gates(pspec_1, oneQgatenames='all', pdist='uniform',
gatesetname='clifford')
assert(len(layer) == n_1)
layer = rb.sample.circuit_layer_of_1Q_gates(pspec_1, oneQgatenames=['Gx','Gy'], pdist=[1.,0.],
gatesetname='clifford')
assert(layer[0].name == 'Gx')
layer = rb.sample.circuit_layer_of_1Q_gates(pspec_1, oneQgatenames=['Gx'], pdist=[3.,],
gatesetname='clifford')
assert(layer[0].name == 'Gx')
layer = rb.sample.circuit_layer_of_1Q_gates(pspec_1, oneQgatenames=['Gx'], pdist='uniform',
gatesetname='clifford')