```rust use projective::Projective;
pub struct Point(f64, f64);
impl Projective
fn testtransform() { let p0 = Point(1.0, 2.0); asserteq!(p0.translate(2.0, 1.0), Point(3.0, 3.0)); asserteq!(p0.scale(2.0, 3.0), Point(2.0, 6.0)); // floating precision error, implement rotate manually to reduce errors asserteq!(p0.rotate(std::f64::consts::PI), Point(-0.9999999999999998, -2.0)); } ```