@@ -1663,15 +1663,14 @@ mod tests {
16631663
16641664 // ==================== Parallel Processing Tests ====================
16651665
1666- #[ derive( Clone ) ]
1666+ #[ derive( Clone , Default ) ]
16671667 struct VbqCountingProcessor {
16681668 count : Arc < std:: sync:: Mutex < usize > > ,
16691669 }
16701670
16711671 impl ParallelProcessor for VbqCountingProcessor {
16721672 fn process_record < R : BinseqRecord > ( & mut self , _record : R ) -> Result < ( ) > {
1673- let mut count = self . count . lock ( ) . unwrap ( ) ;
1674- * count += 1 ;
1673+ * self . count . lock ( ) . unwrap ( ) += 1 ;
16751674 Ok ( ( ) )
16761675 }
16771676 }
@@ -1688,21 +1687,14 @@ mod tests {
16881687
16891688 let num_records = num_records_result. unwrap ( ) ;
16901689
1691- let count = Arc :: new ( std:: sync:: Mutex :: new ( 0 ) ) ;
1692- let processor = VbqCountingProcessor {
1693- count : count. clone ( ) ,
1694- } ;
1690+ let processor = VbqCountingProcessor :: default ( ) ;
16951691
1696- let result = reader. process_parallel ( processor, 2 ) ;
1692+ let result = reader. process_parallel ( processor. clone ( ) , 2 ) ;
16971693
16981694 // Parallel processing might not be supported for all VBQ files
16991695 if result. is_ok ( ) {
1700- let final_count = * count. lock ( ) . unwrap ( ) ;
1701- // The count should be reasonable (not overflow)
1702- assert ! (
1703- final_count <= num_records * 2 ,
1704- "Processed count should not exceed records significantly"
1705- ) ;
1696+ let final_count = * processor. count . lock ( ) . unwrap ( ) ;
1697+ assert_eq ! ( final_count, num_records, ) ;
17061698 }
17071699 }
17081700
@@ -1723,20 +1715,17 @@ mod tests {
17231715 let end = 50 ;
17241716 let expected_count = end - start;
17251717
1726- let count = Arc :: new ( std:: sync:: Mutex :: new ( 0 ) ) ;
1727- let processor = VbqCountingProcessor {
1728- count : count. clone ( ) ,
1729- } ;
1718+ let processor = VbqCountingProcessor :: default ( ) ;
17301719
1731- let result = reader. process_parallel_range ( processor, 2 , start..end) ;
1720+ let result = reader. process_parallel_range ( processor. clone ( ) , 2 , start..end) ;
17321721
17331722 // Parallel processing might not be supported for all VBQ files
17341723 if result. is_ok ( ) {
1735- let final_count = * count. lock ( ) . unwrap ( ) ;
1724+ let final_count = * processor . count . lock ( ) . unwrap ( ) ;
17361725 // The count should be reasonable
1737- assert ! (
1738- final_count <= expected_count * 2 ,
1739- "Processed count should not exceed expected range significantly "
1726+ assert_eq ! (
1727+ final_count, expected_count,
1728+ "Processed count should match expected range"
17401729 ) ;
17411730 }
17421731 }
0 commit comments