Skip to content

Commit 03a6eba

Browse files
committed
fix tests
1 parent 6e2fdac commit 03a6eba

File tree

8 files changed

+59
-88
lines changed

8 files changed

+59
-88
lines changed

qualtran/bloqs/arithmetic/lists/has_duplicates.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,5 @@ def _has_duplicates_symb_len() -> HasDuplicates:
172172

173173

174174
_HAS_DUPLICATES_DOC = BloqDocSpec(
175-
bloq_cls=HasDuplicates,
176-
examples=[_has_duplicates_symb, _has_duplicates, _has_duplicates_symb_len],
175+
bloq_cls=HasDuplicates, examples=[_has_duplicates_symb, _has_duplicates]
177176
)

qualtran/bloqs/arithmetic/lists/has_duplicates_test.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818

1919
import qualtran.testing as qlt_testing
2020
from qualtran import QInt, QUInt
21-
22-
from .has_duplicates import (
21+
from qualtran.bloqs.arithmetic.lists.has_duplicates import (
2322
_has_duplicates,
2423
_has_duplicates_symb,
2524
_has_duplicates_symb_len,

qualtran/bloqs/arithmetic/lists/lists.ipynb

+27-65
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"cells": [
33
{
44
"cell_type": "markdown",
5-
"id": "4b6002bc",
5+
"id": "46306919",
66
"metadata": {
77
"cq.autogen": "title_cell"
88
},
@@ -13,7 +13,7 @@
1313
{
1414
"cell_type": "code",
1515
"execution_count": null,
16-
"id": "73f38d89",
16+
"id": "47761dec",
1717
"metadata": {
1818
"cq.autogen": "top_imports"
1919
},
@@ -30,7 +30,7 @@
3030
},
3131
{
3232
"cell_type": "markdown",
33-
"id": "75d1819f",
33+
"id": "19f11879",
3434
"metadata": {
3535
"cq.autogen": "SortInPlace.bloq_doc.md"
3636
},
@@ -79,7 +79,7 @@
7979
{
8080
"cell_type": "code",
8181
"execution_count": null,
82-
"id": "fcb6c012",
82+
"id": "ce69b6e8",
8383
"metadata": {
8484
"cq.autogen": "SortInPlace.bloq_doc.py"
8585
},
@@ -90,7 +90,7 @@
9090
},
9191
{
9292
"cell_type": "markdown",
93-
"id": "e878a52b",
93+
"id": "e84df89b",
9494
"metadata": {
9595
"cq.autogen": "SymmetricDifference.bloq_doc.md"
9696
},
@@ -121,7 +121,7 @@
121121
{
122122
"cell_type": "code",
123123
"execution_count": null,
124-
"id": "ccaa8a4b",
124+
"id": "d3a9d9ea",
125125
"metadata": {
126126
"cq.autogen": "SymmetricDifference.bloq_doc.py"
127127
},
@@ -132,7 +132,7 @@
132132
},
133133
{
134134
"cell_type": "markdown",
135-
"id": "6cefce9f",
135+
"id": "f58e0eba",
136136
"metadata": {
137137
"cq.autogen": "SymmetricDifference.example_instances.md"
138138
},
@@ -143,42 +143,19 @@
143143
{
144144
"cell_type": "code",
145145
"execution_count": null,
146-
"id": "b7ffc68f",
146+
"id": "29fc34f0",
147147
"metadata": {
148148
"cq.autogen": "SymmetricDifference.symm_diff"
149149
},
150150
"outputs": [],
151151
"source": [
152-
"import sympy\n",
153-
"\n",
154-
"from qualtran.symbolics import bit_length\n",
155-
"\n",
156-
"n, k, c = sympy.symbols(\"n k c\", positive=True, integer=True)\n",
157-
"dtype = QUInt(bit_length(n - 1))\n",
158-
"symm_diff = SymmetricDifference(n_lhs=c * k, n_rhs=k, n_diff=c * k, dtype=dtype)"
159-
]
160-
},
161-
{
162-
"cell_type": "code",
163-
"execution_count": null,
164-
"id": "4da0b292",
165-
"metadata": {
166-
"cq.autogen": "SymmetricDifference.symm_diff_equal_size"
167-
},
168-
"outputs": [],
169-
"source": [
170-
"import sympy\n",
171-
"\n",
172-
"from qualtran.symbolics import bit_length\n",
173-
"\n",
174-
"n, k, c = sympy.symbols(\"n k c\", positive=True, integer=True)\n",
175-
"dtype = QUInt(bit_length(n - 1))\n",
176-
"symm_diff_equal_size = SymmetricDifference(n_lhs=c * k, n_rhs=c * k, n_diff=k, dtype=dtype)"
152+
"dtype = QUInt(4)\n",
153+
"symm_diff = SymmetricDifference(n_lhs=4, n_rhs=2, n_diff=4, dtype=dtype)"
177154
]
178155
},
179156
{
180157
"cell_type": "markdown",
181-
"id": "79bb967b",
158+
"id": "70608811",
182159
"metadata": {
183160
"cq.autogen": "SymmetricDifference.graphical_signature.md"
184161
},
@@ -189,20 +166,20 @@
189166
{
190167
"cell_type": "code",
191168
"execution_count": null,
192-
"id": "fb210e38",
169+
"id": "9df9334c",
193170
"metadata": {
194171
"cq.autogen": "SymmetricDifference.graphical_signature.py"
195172
},
196173
"outputs": [],
197174
"source": [
198175
"from qualtran.drawing import show_bloqs\n",
199-
"show_bloqs([symm_diff, symm_diff_equal_size],\n",
200-
" ['`symm_diff`', '`symm_diff_equal_size`'])"
176+
"show_bloqs([symm_diff],\n",
177+
" ['`symm_diff`'])"
201178
]
202179
},
203180
{
204181
"cell_type": "markdown",
205-
"id": "946e2cef",
182+
"id": "476c580a",
206183
"metadata": {
207184
"cq.autogen": "SymmetricDifference.call_graph.md"
208185
},
@@ -213,7 +190,7 @@
213190
{
214191
"cell_type": "code",
215192
"execution_count": null,
216-
"id": "9a25a154",
193+
"id": "a6e6f812",
217194
"metadata": {
218195
"cq.autogen": "SymmetricDifference.call_graph.py"
219196
},
@@ -227,7 +204,7 @@
227204
},
228205
{
229206
"cell_type": "markdown",
230-
"id": "a78e7e32",
207+
"id": "15e88a40",
231208
"metadata": {
232209
"cq.autogen": "HasDuplicates.bloq_doc.md"
233210
},
@@ -254,7 +231,7 @@
254231
{
255232
"cell_type": "code",
256233
"execution_count": null,
257-
"id": "0707263c",
234+
"id": "101f6899",
258235
"metadata": {
259236
"cq.autogen": "HasDuplicates.bloq_doc.py"
260237
},
@@ -265,7 +242,7 @@
265242
},
266243
{
267244
"cell_type": "markdown",
268-
"id": "eae0fee2",
245+
"id": "6ceded7e",
269246
"metadata": {
270247
"cq.autogen": "HasDuplicates.example_instances.md"
271248
},
@@ -276,7 +253,7 @@
276253
{
277254
"cell_type": "code",
278255
"execution_count": null,
279-
"id": "588c7e8a",
256+
"id": "d5f5efa7",
280257
"metadata": {
281258
"cq.autogen": "HasDuplicates.has_duplicates_symb"
282259
},
@@ -291,7 +268,7 @@
291268
{
292269
"cell_type": "code",
293270
"execution_count": null,
294-
"id": "d7d63e51",
271+
"id": "a5412e0d",
295272
"metadata": {
296273
"cq.autogen": "HasDuplicates.has_duplicates"
297274
},
@@ -300,24 +277,9 @@
300277
"has_duplicates = HasDuplicates(4, QUInt(3))"
301278
]
302279
},
303-
{
304-
"cell_type": "code",
305-
"execution_count": null,
306-
"id": "a12dbdf3",
307-
"metadata": {
308-
"cq.autogen": "HasDuplicates.has_duplicates_symb_len"
309-
},
310-
"outputs": [],
311-
"source": [
312-
"import sympy\n",
313-
"\n",
314-
"l, n = sympy.symbols(\"l n\")\n",
315-
"has_duplicates_symb_len = HasDuplicates(l, QUInt(n))"
316-
]
317-
},
318280
{
319281
"cell_type": "markdown",
320-
"id": "d189b98d",
282+
"id": "7c1c62b4",
321283
"metadata": {
322284
"cq.autogen": "HasDuplicates.graphical_signature.md"
323285
},
@@ -328,20 +290,20 @@
328290
{
329291
"cell_type": "code",
330292
"execution_count": null,
331-
"id": "b905935f",
293+
"id": "1198bb5d",
332294
"metadata": {
333295
"cq.autogen": "HasDuplicates.graphical_signature.py"
334296
},
335297
"outputs": [],
336298
"source": [
337299
"from qualtran.drawing import show_bloqs\n",
338-
"show_bloqs([has_duplicates_symb, has_duplicates, has_duplicates_symb_len],\n",
339-
" ['`has_duplicates_symb`', '`has_duplicates`', '`has_duplicates_symb_len`'])"
300+
"show_bloqs([has_duplicates_symb, has_duplicates],\n",
301+
" ['`has_duplicates_symb`', '`has_duplicates`'])"
340302
]
341303
},
342304
{
343305
"cell_type": "markdown",
344-
"id": "2156df99",
306+
"id": "f6b8cde0",
345307
"metadata": {
346308
"cq.autogen": "HasDuplicates.call_graph.md"
347309
},
@@ -352,7 +314,7 @@
352314
{
353315
"cell_type": "code",
354316
"execution_count": null,
355-
"id": "d05f52a0",
317+
"id": "75afba07",
356318
"metadata": {
357319
"cq.autogen": "HasDuplicates.call_graph.py"
358320
},

qualtran/bloqs/arithmetic/lists/symmetric_difference.py

+13-8
Original file line numberDiff line numberDiff line change
@@ -103,28 +103,33 @@ def build_call_graph(self, ssa: 'SympySymbolAllocator') -> BloqCountDictT:
103103

104104
@bloq_example
105105
def _symm_diff() -> SymmetricDifference:
106+
dtype = QUInt(4)
107+
symm_diff = SymmetricDifference(n_lhs=4, n_rhs=2, n_diff=4, dtype=dtype)
108+
return symm_diff
109+
110+
111+
@bloq_example
112+
def _symm_diff_symb() -> SymmetricDifference:
106113
import sympy
107114

108115
from qualtran.symbolics import bit_length
109116

110117
n, k, c = sympy.symbols("n k c", positive=True, integer=True)
111118
dtype = QUInt(bit_length(n - 1))
112-
symm_diff = SymmetricDifference(n_lhs=c * k, n_rhs=k, n_diff=c * k, dtype=dtype)
113-
return symm_diff
119+
symm_diff_symb = SymmetricDifference(n_lhs=c * k, n_rhs=k, n_diff=c * k, dtype=dtype)
120+
return symm_diff_symb
114121

115122

116123
@bloq_example
117-
def _symm_diff_equal_size() -> SymmetricDifference:
124+
def _symm_diff_equal_size_symb() -> SymmetricDifference:
118125
import sympy
119126

120127
from qualtran.symbolics import bit_length
121128

122129
n, k, c = sympy.symbols("n k c", positive=True, integer=True)
123130
dtype = QUInt(bit_length(n - 1))
124-
symm_diff_equal_size = SymmetricDifference(n_lhs=c * k, n_rhs=c * k, n_diff=k, dtype=dtype)
125-
return symm_diff_equal_size
131+
symm_diff_equal_size_symb = SymmetricDifference(n_lhs=c * k, n_rhs=c * k, n_diff=k, dtype=dtype)
132+
return symm_diff_equal_size_symb
126133

127134

128-
_SYMMETRIC_DIFFERENCE_DOC = BloqDocSpec(
129-
bloq_cls=SymmetricDifference, examples=[_symm_diff, _symm_diff_equal_size]
130-
)
135+
_SYMMETRIC_DIFFERENCE_DOC = BloqDocSpec(bloq_cls=SymmetricDifference, examples=[_symm_diff])

qualtran/bloqs/arithmetic/lists/symmetric_difference_test.py

+9-10
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,22 @@
1515

1616
import pytest
1717

18+
import qualtran.testing as qlt_testing
19+
from qualtran.bloqs.arithmetic.lists.symmetric_difference import (
20+
_symm_diff,
21+
_symm_diff_equal_size_symb,
22+
_symm_diff_symb,
23+
)
1824
from qualtran.resource_counting import big_O, GateCounts, get_cost_value, QECGatesCost
1925
from qualtran.symbolics import ceil, log2
2026

21-
from .symmetric_difference import _symm_diff, _symm_diff_equal_size
2227

23-
24-
@pytest.mark.parametrize("bloq_ex", [_symm_diff, _symm_diff_equal_size])
28+
@pytest.mark.parametrize("bloq_ex", [_symm_diff, _symm_diff_symb, _symm_diff_equal_size_symb])
2529
def test_examples(bloq_autotester, bloq_ex):
26-
if bloq_autotester.check_name == 'serialize':
27-
pytest.skip()
28-
2930
bloq_autotester(bloq_ex)
3031

3132

32-
@pytest.mark.parametrize("bloq_ex", [_symm_diff, _symm_diff_equal_size])
33+
@pytest.mark.parametrize("bloq_ex", [_symm_diff_symb, _symm_diff_equal_size_symb])
3334
def test_cost(bloq_ex):
3435
bloq = bloq_ex()
3536
gc = get_cost_value(bloq, QECGatesCost())
@@ -58,6 +59,4 @@ def test_cost(bloq_ex):
5859

5960
@pytest.mark.notebook
6061
def test_notebook():
61-
from qualtran.testing import execute_notebook
62-
63-
execute_notebook('arithmetic')
62+
qlt_testing.execute_notebook('lists')

qualtran/bloqs/arithmetic/sorting.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ def build_composite_bloq(
251251
k = self.half_length
252252
if is_symbolic(k):
253253
raise DecomposeTypeError(f"Cannot decompose symbolic {self=}")
254-
if (k & (k - 1)) == 0:
254+
if (k & (k - 1)) != 0:
255255
# TODO(#1090) support non-power-of-two input lengths
256256
raise DecomposeNotImplementedError("length of input lists must be a power of 2")
257257

qualtran/conftest.py

+3
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ def assert_bloq_example_serializes_for_pytest(bloq_ex: BloqExample):
141141
'ctrl_on_symbolic_cv', # cannot serialize Shaped
142142
'ctrl_on_symbolic_cv_multi', # cannot serialize Shaped
143143
'ctrl_on_symbolic_n_ctrls', # cannot serialize Shaped
144+
'has_duplicates_symb_len', # cannot serialize HasLength
145+
'symm_diff_symb', # round trip fail: sympy assumptions not serialized
146+
'symm_diff_equal_size_symb', # round trip fail: sympy assumptions not serialized
144147
]:
145148
pytest.xfail("Skipping serialization test for bloq examples that cannot yet be serialized.")
146149

qualtran/serialization/resolver_dict.py

+4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import qualtran.bloqs.arithmetic.conversions.ones_complement_to_twos_complement
2424
import qualtran.bloqs.arithmetic.conversions.sign_extension
2525
import qualtran.bloqs.arithmetic.hamming_weight
26+
import qualtran.bloqs.arithmetic.lists
2627
import qualtran.bloqs.arithmetic.multiplication
2728
import qualtran.bloqs.arithmetic.negate
2829
import qualtran.bloqs.arithmetic.permutation
@@ -191,6 +192,9 @@
191192
"qualtran.bloqs.arithmetic.conversions.sign_extension.SignExtend": qualtran.bloqs.arithmetic.conversions.sign_extension.SignExtend,
192193
"qualtran.bloqs.arithmetic.conversions.sign_extension.SignTruncate": qualtran.bloqs.arithmetic.conversions.sign_extension.SignTruncate,
193194
"qualtran.bloqs.arithmetic.hamming_weight.HammingWeightCompute": qualtran.bloqs.arithmetic.hamming_weight.HammingWeightCompute,
195+
"qualtran.bloqs.arithmetic.lists.has_duplicates.HasDuplicates": qualtran.bloqs.arithmetic.lists.has_duplicates.HasDuplicates,
196+
"qualtran.bloqs.arithmetic.lists.sort_in_place.SortInPlace": qualtran.bloqs.arithmetic.lists.sort_in_place.SortInPlace,
197+
"qualtran.bloqs.arithmetic.lists.symmetric_difference.SymmetricDifference": qualtran.bloqs.arithmetic.lists.symmetric_difference.SymmetricDifference,
194198
"qualtran.bloqs.arithmetic.multiplication.InvertRealNumber": qualtran.bloqs.arithmetic.multiplication.InvertRealNumber,
195199
"qualtran.bloqs.arithmetic.multiplication.MultiplyTwoReals": qualtran.bloqs.arithmetic.multiplication.MultiplyTwoReals,
196200
"qualtran.bloqs.arithmetic.multiplication.PlusEqualProduct": qualtran.bloqs.arithmetic.multiplication.PlusEqualProduct,

0 commit comments

Comments
 (0)