Skip to content

Commit 702c7f6

Browse files
authored
Fix collecting creg data from the result JSON (#139)
* Fix collecting creg data from the result JSON * Revert format
1 parent 1646df9 commit 702c7f6

1 file changed

Lines changed: 14 additions & 16 deletions

File tree

src/primitives/containers/sampler_pub_result.hpp

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -104,26 +104,24 @@ class SamplerPubResult {
104104
std::cerr << " SamplerPubResult Error : JSON result does not contain data section " << std::endl;
105105
return false;
106106
}
107-
if (!input["data"].contains("c")) {
108-
std::cerr << " SamplerPubResult Error : JSON result does not contain creg section " << std::endl;
109-
return false;
110-
}
111107

112-
auto data = input["data"]["c"];
108+
auto data = input["data"];
113109

114-
uint_t total_bits = 0;
115-
for (auto creg : pub_.circuit().cregs()) {
116-
total_bits += creg.size();
110+
for(auto creg : pub_.circuit().cregs()) {
111+
if(!data.contains(creg.name())) {
112+
std::cerr << " SamplerPubResult Error : JSON result does not contain "
113+
"creg section for "
114+
<< creg.name()
115+
<< std::endl;
116+
return false;
117+
}
117118
}
118-
// read all bits
119-
BitArray allbits;
120-
allbits.set_bits(total_bits);
121-
allbits.from_json(data);
122119

123-
total_bits = 0;
124-
for (auto creg : pub_.circuit().cregs()) {
125-
data_[creg.name()] = allbits.get_subset(total_bits, creg.size());
126-
total_bits += creg.size();
120+
for(auto creg : pub_.circuit().cregs()) {
121+
BitArray bits;
122+
bits.set_bits(creg.size());
123+
bits.from_json(data[creg.name()]);
124+
data_[creg.name()] = bits;
127125
}
128126

129127
return true;

0 commit comments

Comments
 (0)