@@ -2,6 +2,9 @@ use std::str::FromStr;
22use std:: num:: ParseIntError ;
33use std:: fmt;
44
5+ #[ cfg( test) ]
6+ mod tests;
7+
58#[ derive( Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord ) ]
69pub struct Version {
710 parts : [ u32 ; 3 ] ,
@@ -46,45 +49,3 @@ impl FromStr for Version {
4649 Ok ( Self { parts } )
4750 }
4851}
49-
50- #[ cfg( test) ]
51- mod test {
52- use super :: Version ;
53-
54- #[ test]
55- fn test_try_from_invalid_version ( ) {
56- assert ! ( "" . parse:: <Version >( ) . is_err( ) ) ;
57- assert ! ( "hello" . parse:: <Version >( ) . is_err( ) ) ;
58- assert ! ( "1.32.hi" . parse:: <Version >( ) . is_err( ) ) ;
59- assert ! ( "1.32..1" . parse:: <Version >( ) . is_err( ) ) ;
60- assert ! ( "1.32" . parse:: <Version >( ) . is_err( ) ) ;
61- assert ! ( "1.32.0.1" . parse:: <Version >( ) . is_err( ) ) ;
62- }
63-
64- #[ test]
65- fn test_try_from_single ( ) {
66- assert_eq ! ( "1.32.0" . parse( ) , Ok ( Version { parts: [ 1 , 32 , 0 ] } ) ) ;
67- assert_eq ! ( "1.0.0" . parse( ) , Ok ( Version { parts: [ 1 , 0 , 0 ] } ) ) ;
68- }
69-
70- #[ test]
71- fn test_compare ( ) {
72- let v_1_0_0 = "1.0.0" . parse :: < Version > ( ) . unwrap ( ) ;
73- let v_1_32_0 = "1.32.0" . parse :: < Version > ( ) . unwrap ( ) ;
74- let v_1_32_1 = "1.32.1" . parse :: < Version > ( ) . unwrap ( ) ;
75- assert ! ( v_1_0_0 < v_1_32_1) ;
76- assert ! ( v_1_0_0 < v_1_32_0) ;
77- assert ! ( v_1_32_0 < v_1_32_1) ;
78- }
79-
80- #[ test]
81- fn test_to_string ( ) {
82- let v_1_0_0 = "1.0.0" . parse :: < Version > ( ) . unwrap ( ) ;
83- let v_1_32_1 = "1.32.1" . parse :: < Version > ( ) . unwrap ( ) ;
84-
85- assert_eq ! ( v_1_0_0. to_string( ) , "1.0.0" ) ;
86- assert_eq ! ( v_1_32_1. to_string( ) , "1.32.1" ) ;
87- assert_eq ! ( format!( "{:<8}" , v_1_32_1) , "1.32.1 " ) ;
88- assert_eq ! ( format!( "{:>8}" , v_1_32_1) , " 1.32.1" ) ;
89- }
90- }
0 commit comments