Skip to content

Commit eb2a19e

Browse files
committed
🤖 generate scalar binop tests for __eq__
1 parent d0ede0d commit eb2a19e

File tree

2 files changed

+320
-5
lines changed

2 files changed

+320
-5
lines changed

‎test/generate_scalar_binops.py‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
"<=": op.__le__,
3434
">=": op.__ge__,
3535
">": op.__gt__,
36-
# TODO(jorenham): these currently all return `Any`; fix this
37-
# "==": op.__eq__,
36+
"==": op.__eq__,
3837
}
3938
NAMES = {
4039
# builtins (key length > 1)
@@ -132,8 +131,12 @@ def _assert_stmt(op: str, lhs: str, rhs: str, /) -> str | None:
132131
"# pyright: ignore[reportOperatorIssue]",
133132
))
134133

135-
expr_type = _sctype_expr(val_out.dtype)
136-
return f"assert_type({expr_eval}, {expr_type})"
134+
expr_type = (
135+
_sctype_expr(val_out.dtype)
136+
if isinstance(val_out, np.generic)
137+
else type(val_out).__qualname__
138+
)
139+
return f"assert_type({expr_eval}, {expr_type})" if expr_type != "bool" else None
137140

138141

139142
def _gen_imports() -> Generator[str]:

‎test/generated/scalar_binops.pyi‎

Lines changed: 313 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# @generated 2025-03-06T18:23:22Z
1+
# @generated 2025-03-06T21:57:19Z
22
from typing_extensions import assert_type
33

44
import numpy as np
@@ -4094,3 +4094,315 @@ assert_type(m8 > i8, np.bool)
40944094
assert_type(m8 > m8, np.bool)
40954095

40964096
assert_type(M8 > M8, np.bool)
4097+
4098+
###
4099+
# __[r]eq__
4100+
4101+
assert_type(b1 == b0, np.bool)
4102+
assert_type(b1 == b1, np.bool)
4103+
assert_type(b1 == u1, np.bool)
4104+
assert_type(b1 == u2, np.bool)
4105+
assert_type(b1 == u4, np.bool)
4106+
assert_type(b1 == u8, np.bool)
4107+
assert_type(b1 == i1, np.bool)
4108+
assert_type(b1 == i2, np.bool)
4109+
assert_type(b1 == i4, np.bool)
4110+
assert_type(b1 == i8, np.bool)
4111+
assert_type(b1 == f2, np.bool)
4112+
assert_type(b1 == f4, np.bool)
4113+
assert_type(b1 == f8, np.bool)
4114+
assert_type(b1 == ld, np.bool)
4115+
assert_type(b1 == c8, np.bool)
4116+
assert_type(b1 == c16, np.bool)
4117+
assert_type(b1 == cld, np.bool)
4118+
assert_type(b1 == m8, np.bool)
4119+
4120+
assert_type(u1 == b0, np.bool)
4121+
assert_type(u1 == b1, np.bool)
4122+
assert_type(u1 == u1, np.bool)
4123+
assert_type(u1 == u2, np.bool)
4124+
assert_type(u1 == u4, np.bool)
4125+
assert_type(u1 == u8, np.bool)
4126+
assert_type(u1 == i1, np.bool)
4127+
assert_type(u1 == i2, np.bool)
4128+
assert_type(u1 == i4, np.bool)
4129+
assert_type(u1 == i8, np.bool)
4130+
assert_type(u1 == f2, np.bool)
4131+
assert_type(u1 == f4, np.bool)
4132+
assert_type(u1 == f8, np.bool)
4133+
assert_type(u1 == ld, np.bool)
4134+
assert_type(u1 == c8, np.bool)
4135+
assert_type(u1 == c16, np.bool)
4136+
assert_type(u1 == cld, np.bool)
4137+
assert_type(u1 == m8, np.bool)
4138+
4139+
assert_type(u2 == b0, np.bool)
4140+
assert_type(u2 == b1, np.bool)
4141+
assert_type(u2 == u1, np.bool)
4142+
assert_type(u2 == u2, np.bool)
4143+
assert_type(u2 == u4, np.bool)
4144+
assert_type(u2 == u8, np.bool)
4145+
assert_type(u2 == i1, np.bool)
4146+
assert_type(u2 == i2, np.bool)
4147+
assert_type(u2 == i4, np.bool)
4148+
assert_type(u2 == i8, np.bool)
4149+
assert_type(u2 == f2, np.bool)
4150+
assert_type(u2 == f4, np.bool)
4151+
assert_type(u2 == f8, np.bool)
4152+
assert_type(u2 == ld, np.bool)
4153+
assert_type(u2 == c8, np.bool)
4154+
assert_type(u2 == c16, np.bool)
4155+
assert_type(u2 == cld, np.bool)
4156+
assert_type(u2 == m8, np.bool)
4157+
4158+
assert_type(u4 == b0, np.bool)
4159+
assert_type(u4 == b1, np.bool)
4160+
assert_type(u4 == u1, np.bool)
4161+
assert_type(u4 == u2, np.bool)
4162+
assert_type(u4 == u4, np.bool)
4163+
assert_type(u4 == u8, np.bool)
4164+
assert_type(u4 == i1, np.bool)
4165+
assert_type(u4 == i2, np.bool)
4166+
assert_type(u4 == i4, np.bool)
4167+
assert_type(u4 == i8, np.bool)
4168+
assert_type(u4 == f2, np.bool)
4169+
assert_type(u4 == f4, np.bool)
4170+
assert_type(u4 == f8, np.bool)
4171+
assert_type(u4 == ld, np.bool)
4172+
assert_type(u4 == c8, np.bool)
4173+
assert_type(u4 == c16, np.bool)
4174+
assert_type(u4 == cld, np.bool)
4175+
assert_type(u4 == m8, np.bool)
4176+
4177+
assert_type(u8 == b0, np.bool)
4178+
assert_type(u8 == b1, np.bool)
4179+
assert_type(u8 == u1, np.bool)
4180+
assert_type(u8 == u2, np.bool)
4181+
assert_type(u8 == u4, np.bool)
4182+
assert_type(u8 == u8, np.bool)
4183+
assert_type(u8 == i1, np.bool)
4184+
assert_type(u8 == i2, np.bool)
4185+
assert_type(u8 == i4, np.bool)
4186+
assert_type(u8 == i8, np.bool)
4187+
assert_type(u8 == f2, np.bool)
4188+
assert_type(u8 == f4, np.bool)
4189+
assert_type(u8 == f8, np.bool)
4190+
assert_type(u8 == ld, np.bool)
4191+
assert_type(u8 == c8, np.bool)
4192+
assert_type(u8 == c16, np.bool)
4193+
assert_type(u8 == cld, np.bool)
4194+
4195+
assert_type(i1 == b0, np.bool)
4196+
assert_type(i1 == b1, np.bool)
4197+
assert_type(i1 == u1, np.bool)
4198+
assert_type(i1 == u2, np.bool)
4199+
assert_type(i1 == u4, np.bool)
4200+
assert_type(i1 == u8, np.bool)
4201+
assert_type(i1 == i1, np.bool)
4202+
assert_type(i1 == i2, np.bool)
4203+
assert_type(i1 == i4, np.bool)
4204+
assert_type(i1 == i8, np.bool)
4205+
assert_type(i1 == f2, np.bool)
4206+
assert_type(i1 == f4, np.bool)
4207+
assert_type(i1 == f8, np.bool)
4208+
assert_type(i1 == ld, np.bool)
4209+
assert_type(i1 == c8, np.bool)
4210+
assert_type(i1 == c16, np.bool)
4211+
assert_type(i1 == cld, np.bool)
4212+
assert_type(i1 == m8, np.bool)
4213+
4214+
assert_type(i2 == b0, np.bool)
4215+
assert_type(i2 == b1, np.bool)
4216+
assert_type(i2 == u1, np.bool)
4217+
assert_type(i2 == u2, np.bool)
4218+
assert_type(i2 == u4, np.bool)
4219+
assert_type(i2 == u8, np.bool)
4220+
assert_type(i2 == i1, np.bool)
4221+
assert_type(i2 == i2, np.bool)
4222+
assert_type(i2 == i4, np.bool)
4223+
assert_type(i2 == i8, np.bool)
4224+
assert_type(i2 == f2, np.bool)
4225+
assert_type(i2 == f4, np.bool)
4226+
assert_type(i2 == f8, np.bool)
4227+
assert_type(i2 == ld, np.bool)
4228+
assert_type(i2 == c8, np.bool)
4229+
assert_type(i2 == c16, np.bool)
4230+
assert_type(i2 == cld, np.bool)
4231+
assert_type(i2 == m8, np.bool)
4232+
4233+
assert_type(i4 == b0, np.bool)
4234+
assert_type(i4 == b1, np.bool)
4235+
assert_type(i4 == u1, np.bool)
4236+
assert_type(i4 == u2, np.bool)
4237+
assert_type(i4 == u4, np.bool)
4238+
assert_type(i4 == u8, np.bool)
4239+
assert_type(i4 == i1, np.bool)
4240+
assert_type(i4 == i2, np.bool)
4241+
assert_type(i4 == i4, np.bool)
4242+
assert_type(i4 == i8, np.bool)
4243+
assert_type(i4 == f2, np.bool)
4244+
assert_type(i4 == f4, np.bool)
4245+
assert_type(i4 == f8, np.bool)
4246+
assert_type(i4 == ld, np.bool)
4247+
assert_type(i4 == c8, np.bool)
4248+
assert_type(i4 == c16, np.bool)
4249+
assert_type(i4 == cld, np.bool)
4250+
assert_type(i4 == m8, np.bool)
4251+
4252+
assert_type(i8 == b0, np.bool)
4253+
assert_type(i8 == b1, np.bool)
4254+
assert_type(i8 == u1, np.bool)
4255+
assert_type(i8 == u2, np.bool)
4256+
assert_type(i8 == u4, np.bool)
4257+
assert_type(i8 == u8, np.bool)
4258+
assert_type(i8 == i1, np.bool)
4259+
assert_type(i8 == i2, np.bool)
4260+
assert_type(i8 == i4, np.bool)
4261+
assert_type(i8 == i8, np.bool)
4262+
assert_type(i8 == f2, np.bool)
4263+
assert_type(i8 == f4, np.bool)
4264+
assert_type(i8 == f8, np.bool)
4265+
assert_type(i8 == ld, np.bool)
4266+
assert_type(i8 == c8, np.bool)
4267+
assert_type(i8 == c16, np.bool)
4268+
assert_type(i8 == cld, np.bool)
4269+
assert_type(i8 == m8, np.bool)
4270+
4271+
assert_type(f2 == b0, np.bool)
4272+
assert_type(f2 == b1, np.bool)
4273+
assert_type(f2 == u1, np.bool)
4274+
assert_type(f2 == u2, np.bool)
4275+
assert_type(f2 == u4, np.bool)
4276+
assert_type(f2 == u8, np.bool)
4277+
assert_type(f2 == i1, np.bool)
4278+
assert_type(f2 == i2, np.bool)
4279+
assert_type(f2 == i4, np.bool)
4280+
assert_type(f2 == i8, np.bool)
4281+
assert_type(f2 == f2, np.bool)
4282+
assert_type(f2 == f4, np.bool)
4283+
assert_type(f2 == f8, np.bool)
4284+
assert_type(f2 == ld, np.bool)
4285+
assert_type(f2 == c8, np.bool)
4286+
assert_type(f2 == c16, np.bool)
4287+
assert_type(f2 == cld, np.bool)
4288+
4289+
assert_type(f4 == b0, np.bool)
4290+
assert_type(f4 == b1, np.bool)
4291+
assert_type(f4 == u1, np.bool)
4292+
assert_type(f4 == u2, np.bool)
4293+
assert_type(f4 == u4, np.bool)
4294+
assert_type(f4 == u8, np.bool)
4295+
assert_type(f4 == i1, np.bool)
4296+
assert_type(f4 == i2, np.bool)
4297+
assert_type(f4 == i4, np.bool)
4298+
assert_type(f4 == i8, np.bool)
4299+
assert_type(f4 == f2, np.bool)
4300+
assert_type(f4 == f4, np.bool)
4301+
assert_type(f4 == f8, np.bool)
4302+
assert_type(f4 == ld, np.bool)
4303+
assert_type(f4 == c8, np.bool)
4304+
assert_type(f4 == c16, np.bool)
4305+
assert_type(f4 == cld, np.bool)
4306+
4307+
assert_type(f8 == b0, np.bool)
4308+
assert_type(f8 == b1, np.bool)
4309+
assert_type(f8 == u1, np.bool)
4310+
assert_type(f8 == u2, np.bool)
4311+
assert_type(f8 == u4, np.bool)
4312+
assert_type(f8 == u8, np.bool)
4313+
assert_type(f8 == i1, np.bool)
4314+
assert_type(f8 == i2, np.bool)
4315+
assert_type(f8 == i4, np.bool)
4316+
assert_type(f8 == i8, np.bool)
4317+
assert_type(f8 == f2, np.bool)
4318+
assert_type(f8 == f4, np.bool)
4319+
assert_type(f8 == f8, np.bool)
4320+
assert_type(f8 == ld, np.bool)
4321+
assert_type(f8 == c8, np.bool)
4322+
assert_type(f8 == c16, np.bool)
4323+
assert_type(f8 == cld, np.bool)
4324+
4325+
assert_type(ld == b0, np.bool)
4326+
assert_type(ld == b1, np.bool)
4327+
assert_type(ld == u1, np.bool)
4328+
assert_type(ld == u2, np.bool)
4329+
assert_type(ld == u4, np.bool)
4330+
assert_type(ld == u8, np.bool)
4331+
assert_type(ld == i1, np.bool)
4332+
assert_type(ld == i2, np.bool)
4333+
assert_type(ld == i4, np.bool)
4334+
assert_type(ld == i8, np.bool)
4335+
assert_type(ld == f2, np.bool)
4336+
assert_type(ld == f4, np.bool)
4337+
assert_type(ld == f8, np.bool)
4338+
assert_type(ld == ld, np.bool)
4339+
assert_type(ld == c8, np.bool)
4340+
assert_type(ld == c16, np.bool)
4341+
assert_type(ld == cld, np.bool)
4342+
4343+
assert_type(c8 == b0, np.bool)
4344+
assert_type(c8 == b1, np.bool)
4345+
assert_type(c8 == u1, np.bool)
4346+
assert_type(c8 == u2, np.bool)
4347+
assert_type(c8 == u4, np.bool)
4348+
assert_type(c8 == u8, np.bool)
4349+
assert_type(c8 == i1, np.bool)
4350+
assert_type(c8 == i2, np.bool)
4351+
assert_type(c8 == i4, np.bool)
4352+
assert_type(c8 == i8, np.bool)
4353+
assert_type(c8 == f2, np.bool)
4354+
assert_type(c8 == f4, np.bool)
4355+
assert_type(c8 == f8, np.bool)
4356+
assert_type(c8 == ld, np.bool)
4357+
assert_type(c8 == c8, np.bool)
4358+
assert_type(c8 == c16, np.bool)
4359+
assert_type(c8 == cld, np.bool)
4360+
4361+
assert_type(c16 == b0, np.bool)
4362+
assert_type(c16 == b1, np.bool)
4363+
assert_type(c16 == u1, np.bool)
4364+
assert_type(c16 == u2, np.bool)
4365+
assert_type(c16 == u4, np.bool)
4366+
assert_type(c16 == u8, np.bool)
4367+
assert_type(c16 == i1, np.bool)
4368+
assert_type(c16 == i2, np.bool)
4369+
assert_type(c16 == i4, np.bool)
4370+
assert_type(c16 == i8, np.bool)
4371+
assert_type(c16 == f2, np.bool)
4372+
assert_type(c16 == f4, np.bool)
4373+
assert_type(c16 == f8, np.bool)
4374+
assert_type(c16 == ld, np.bool)
4375+
assert_type(c16 == c8, np.bool)
4376+
assert_type(c16 == c16, np.bool)
4377+
assert_type(c16 == cld, np.bool)
4378+
4379+
assert_type(cld == b0, np.bool)
4380+
assert_type(cld == b1, np.bool)
4381+
assert_type(cld == u1, np.bool)
4382+
assert_type(cld == u2, np.bool)
4383+
assert_type(cld == u4, np.bool)
4384+
assert_type(cld == u8, np.bool)
4385+
assert_type(cld == i1, np.bool)
4386+
assert_type(cld == i2, np.bool)
4387+
assert_type(cld == i4, np.bool)
4388+
assert_type(cld == i8, np.bool)
4389+
assert_type(cld == f2, np.bool)
4390+
assert_type(cld == f4, np.bool)
4391+
assert_type(cld == f8, np.bool)
4392+
assert_type(cld == ld, np.bool)
4393+
assert_type(cld == c8, np.bool)
4394+
assert_type(cld == c16, np.bool)
4395+
assert_type(cld == cld, np.bool)
4396+
4397+
assert_type(m8 == b0, np.bool)
4398+
assert_type(m8 == b1, np.bool)
4399+
assert_type(m8 == u1, np.bool)
4400+
assert_type(m8 == u2, np.bool)
4401+
assert_type(m8 == u4, np.bool)
4402+
assert_type(m8 == i1, np.bool)
4403+
assert_type(m8 == i2, np.bool)
4404+
assert_type(m8 == i4, np.bool)
4405+
assert_type(m8 == i8, np.bool)
4406+
assert_type(m8 == m8, np.bool)
4407+
4408+
assert_type(M8 == M8, np.bool)

0 commit comments

Comments
 (0)