// Minimal test with debug prints INSIDE the evolve method

temporal struct Counter {
    state n: Int,
    state f: Float,
}

impl Evolve for Counter {
    fn evolve(&mut self, dt: Float) {
        println("  [inside evolve] n before = " + int_to_str(self.n))
        self.n = self.n + 1
        println("  [inside evolve] n after = " + int_to_str(self.n))
    }
}

fn main() {
    let c = Counter { n: 0, f: 0.0 }
    println("before: n=" + int_to_str(c.n))

    c.evolve(1.0)
    println("after 1: n=" + int_to_str(c.n))

    c.evolve(1.0)
    println("after 2: n=" + int_to_str(c.n))
}
