Task
📝 **Task:** Implement `estimate(input_fresh, input_cached, output, price_in, price_out, batch=False) -> float`. Rules:
* Fresh input tokens cost `price_in` per 1M.
* Cached input tokens cost `0.1 * price_in` per 1M (10%).
* Output tokens cost `price_out` per 1M.
* If `batch=True`, multiply the whole thing by `0.5`.
* Round result to 4 decimals.
The driver exercises four scenarios: canonical sync, same batched, all-fresh (no cache benefit), and zero-output (input-only cost).
Expected output:
```
sync=0.0132
batch=0.0066
no_cache=0.0375
no_output=0.0057
```
📋 Implement the function above. Tests run automatically.
💡 **Hint:** Re-read the theory if stuck.