lean4-htt/tests/elab/bytearray_eq.lean
Henrik Böving 097f3ebdbc
perf: use memcmp for ByteArray equality (#13235)
This PR uses `std::memcmp` for `ByteArray` `BEq` and `DecidableEq`.

Implementation is done in the same way as `String` but adapted to scalar
arrays.
2026-04-01 15:30:03 +00:00

59 lines
1.2 KiB
Text

module
/-! test native equality on ByteArray -/
def mk (xs : Array UInt8) : ByteArray := ⟨xs⟩
/-- info: true -/
#guard_msgs in
#eval mk #[] == mk #[]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 4, 5] == mk #[1, 2, 3, 4, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[1] != mk #[]
/-- info: true -/
#guard_msgs in
#eval mk #[] != mk #[1]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 4, 5] != mk #[0, 2, 3, 4, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[0, 2, 3, 4, 5] != mk #[1, 2, 3, 4, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 4, 5] != mk #[1, 2, 3, 0, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 0, 5] != mk #[1, 2, 3, 4, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[] = mk #[]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 4, 5] = mk #[1, 2, 3, 4, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[1] ≠ mk #[]
/-- info: true -/
#guard_msgs in
#eval mk #[] ≠ mk #[1]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 4, 5] ≠ mk #[0, 2, 3, 4, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[0, 2, 3, 4, 5] ≠ mk #[1, 2, 3, 4, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 4, 5] ≠ mk #[1, 2, 3, 0, 5]
/-- info: true -/
#guard_msgs in
#eval mk #[1, 2, 3, 0, 5] ≠ mk #[1, 2, 3, 4, 5]