Rewrites 8 existing tests to mock RegressionMetrics instead of verifying manual numpy math. Adds 2 new tests: - r2 excluded + warning when model_type is non-linear - r2 included when model_type is absent (backward compat) Replaces silent-discard test with ValueError propagation test. SIENTIAPDE-1986