Skip to content

Compare values in 'test' by JSON equality (#216) - #221

Merged
stefankoegl merged 1 commit into
masterfrom
claude/busy-fermat-uzxg2o
Oct 9, 2026
Merged

stefankoegl merged 1 commit into
masterfrom
claude/busy-fermat-uzxg2o

Conversation

@stefankoegl

Copy link
Copy Markdown
Owner

RFC 6902, 4.6 compares numbers by value, but literals like true and false
are only equal to themselves. TestOperation compared with Python's !=,
which considers 1 and True (0 and False) equal, also inside arrays and
objects, so e.g. testing {"a": 1} for true passed.

'test' now compares with _json_equal: booleans only equal booleans,
numbers compare by value, so 1 and 1.0 still match, and arrays and
objects compare member by member. PatchOperation.eq uses it too, so
patches that test for 1 and for true, which behave differently, are no
longer equal. _json_equal is stricter than ==, so equal operations still
have equal hashes.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01TsjXWEqUCRUcZxVUe4Tw5G

RFC 6902, 4.6 compares numbers by value, but literals like true and false
are only equal to themselves. TestOperation compared with Python's !=,
which considers 1 and True (0 and False) equal, also inside arrays and
objects, so e.g. testing {"a": 1} for true passed.

'test' now compares with _json_equal: booleans only equal booleans,
numbers compare by value, so 1 and 1.0 still match, and arrays and
objects compare member by member. PatchOperation.__eq__ uses it too, so
patches that test for 1 and for true, which behave differently, are no
longer equal. _json_equal is stricter than ==, so equal operations still
have equal hashes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TsjXWEqUCRUcZxVUe4Tw5G
@stefankoegl
stefankoegl merged commit ba92a73 into master Oct 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants