@@ -90,26 +90,66 @@ pub fn run_learn(args: &[String]) -> Result<()> {
9090 . bold( )
9191 . bright_white( )
9292 ) ;
93- let report = crate :: pipeline:: toml_filter:: run_inline_tests (
94- crate :: pipeline:: toml_filter:: load_all_filters ( ) ,
95- ) ;
96- let total = report. passes + report. failures . len ( ) ;
93+ let all_filters = crate :: pipeline:: toml_filter:: load_all_filters ( ) ;
94+ let report = crate :: pipeline:: toml_filter:: run_inline_tests ( all_filters) ;
9795
98- let status = if report. failures . is_empty ( ) {
99- "ALL PASSED" . green ( )
100- } else {
101- "FAILURES DETECTED" . red ( )
102- } ;
96+ let ( mut built_in_fails, mut user_fails) = ( 0 , 0 ) ;
97+ let ( mut built_in_total, mut user_total) = ( 0 , 0 ) ;
10398
104- println ! ( " Status: {} ({} / {})" , status, report. passes, total) ;
99+ for filter in all_filters {
100+ let count = filter. inline_tests . len ( ) ;
101+ if filter. name . starts_with ( "sys_" ) {
102+ built_in_total += count;
103+ } else {
104+ user_total += count;
105+ }
106+ }
107+
108+ for fail in & report. failures {
109+ if fail. contains ( "Filter 'sys_" ) {
110+ built_in_fails += 1 ;
111+ } else {
112+ user_fails += 1 ;
113+ }
114+ }
115+
116+ let total_tests = built_in_total + user_total;
117+ let total_passes = report. passes ;
118+
119+ println ! (
120+ " Total Tests: {} ({} passed, {} failed)" ,
121+ total_tests,
122+ total_passes,
123+ report. failures. len( )
124+ ) ;
125+ println ! (
126+ " - Built-in: {} tests ({} failed)" ,
127+ built_in_total, built_in_fails
128+ ) ;
129+ println ! (
130+ " - User: {} tests ({} failed)" ,
131+ user_total, user_fails
132+ ) ;
105133
106134 if !report. failures . is_empty ( ) {
107- println ! ( "\n {}" , "Details:" . bold( ) . red( ) ) ;
135+ println ! ( "\n {}" , "Failure Details:" . bold( ) . red( ) ) ;
108136 for f in report. failures {
109137 println ! ( " {} {}" , "✗" . red( ) , f) ;
110138 }
139+ if user_fails > 0 {
140+ println ! (
141+ "\n {}" ,
142+ "TIP: Learned filters often fail if the noise pattern has changed. You can clear them by deleting ~/.omni/filters/learned.toml"
143+ . dimmed( )
144+ ) ;
145+ }
146+ } else {
147+ println ! (
148+ "\n {}" ,
149+ "✓ All loaded filters pass their inline tests!" . green( )
150+ ) ;
111151 }
112- println ! ( ) ;
152+
113153 return Ok ( ( ) ) ;
114154 }
115155
0 commit comments