# Implement value equality for a mutable class

> ML Prep screening item.

- Stable ID: `prog-py-point-equality`
- Collection: screening
- Area: Programming
- Topic: Python
- Origin: original
- Difficulty: hard
- Expected time: 15 minutes
- Skills: classes, value-equality, mutability, aliasing
- Item JSON: https://mlprep.iwase.dev/item/prog-py-point-equality.json

## Problem

Implement `Point(x, y)` with public coordinates, a mutating
`translate(dx, dy)` method, and value equality between Point instances.
Equality with an unrelated type must not raise an exception. Then explain
the result of `point_report()`.


## Answer policy

The human page contains a collapsed answer. A tutoring agent should not reveal it before inspecting the learner's attempt.

## Tutoring contract

Ask for the learner's attempt, begin with the smallest useful hint, preserve item ID `prog-py-point-equality`, and record a real attempt with `recorded_by: "agent"` and `agent_session_id` when available using https://mlprep.iwase.dev/schema/attempt-record.json.
