============================================================
 MAGIC METHODS — CUSTOM VECTOR CLASS - Demo Run
============================================================

--- __str__ / __repr__ ---
  str(v1) = Vector(3, 4)
  repr(v1) = Vector(3, 4)

--- Operator overloading ---
  v1 + v2 = Vector(4, 6)
  v1 - v2 = Vector(2, 2)
  v1 * 3 = Vector(9, 12)

--- Equality (__eq__) ---
  v1 == v3 (same components, different objects): True
  v1 == v2: False

--- magnitude() and sorting by magnitude (__lt__) ---
  v1.magnitude() = 5.0
  sorted by magnitude: ['Vector(1, 1)', 'Vector(3, 4)', 'Vector(0, 5)']

============================================================
 Assignment: __abs__ and __neg__
============================================================
  abs(v1) = 5.0  (same as v1.magnitude())
  -v1 = Vector(-3, -4)
  Combined expression: abs(v1 + v2) = 7.211
  Combined expression: -(v1 - v2) = Vector(-2, -2)
