@@ -15,17 +15,19 @@ Note: Floats sequences are not allowed for `mode` function.
1515use std:: collections:: HashMap ;
1616use std:: collections:: HashSet ;
1717
18- use num_traits:: { Num , FromPrimitive , ToPrimitive , One } ;
18+ use num_traits:: { FromPrimitive , Num , One , ToPrimitive } ;
1919
2020fn sum < T : Num + Copy > ( sequence : Vec < T > ) -> T {
2121 sequence. iter ( ) . fold ( T :: zero ( ) , |acc, x| acc + * x)
2222}
2323
24- fn product < T : Num + Copy + One + FromPrimitive + ToPrimitive > ( sequence : & Vec < T > ) -> Option < f64 > {
24+ #[ allow( dead_code) ]
25+ fn product < T : Num + Copy + One + FromPrimitive + ToPrimitive > ( sequence : & [ T ] ) -> Option < f64 > {
2526 if sequence. is_empty ( ) {
2627 None
2728 } else {
28- sequence. iter ( )
29+ sequence
30+ . iter ( )
2931 . copied ( )
3032 . fold ( T :: one ( ) , |acc, x| acc * x)
3133 . to_f64 ( )
@@ -48,12 +50,14 @@ fn mean_of_two<T: Num + Copy>(a: T, b: T) -> T {
4850 ( a + b) / ( T :: one ( ) + T :: one ( ) )
4951}
5052
51-
5253/// # Argument
5354///
5455/// * `sequence` - A vector of numbers.
5556/// Returns geometric mean of `sequence`.
56- pub fn geometric_mean < T : Num + Copy + One + FromPrimitive + ToPrimitive > ( sequence : & Vec < T > ) -> Option < f64 > {
57+ #[ allow( dead_code) ]
58+ pub fn geometric_mean < T : Num + Copy + One + FromPrimitive + ToPrimitive > (
59+ sequence : & [ T ] ,
60+ ) -> Option < f64 > {
5761 if sequence. is_empty ( ) {
5862 return None ;
5963 }
@@ -156,7 +160,7 @@ mod test {
156160 fn test_product_empty ( ) {
157161 let sequence: Vec < i32 > = vec ! [ ] ;
158162 let result = product ( & sequence) ;
159- assert_eq ! ( result, None ) ;
163+ assert_eq ! ( result, None ) ;
160164 }
161165
162166 // Product of a single value is the value
@@ -185,7 +189,7 @@ mod test {
185189
186190 // Geometric mean of a single value is the value itself.
187191 #[ test]
188- fn test_geometric_mean_single_element ( ) {
192+ fn test_geometric_mean_single_element ( ) {
189193 let sequence = vec ! [ 5.0 ] ;
190194 let result = geometric_mean ( & sequence) ;
191195 assert_eq ! ( result, Some ( 5.0 ) ) ;
@@ -206,5 +210,4 @@ mod test {
206210 let result = geometric_mean ( & sequence) ;
207211 assert_eq ! ( result, Some ( 0.34996355115805833 ) ) ;
208212 }
209-
210- }
213+ }
0 commit comments