@@ -30,15 +30,13 @@ enum Default6 {
3030}
3131
3232#[ test]
33- fn test_foo ( ) {
33+ fn test_ctors ( ) {
3434 use enumflags2:: BitFlags ;
3535 assert_eq ! (
3636 BitFlags :: <Test >:: all( ) ,
3737 Test :: A | Test :: B | Test :: C | Test :: D
3838 ) ;
3939 assert_eq ! ( BitFlags :: <Test >:: all( ) & Test :: A , Test :: A ) ;
40- assert_eq ! ( !Test :: A , Test :: B | Test :: C | Test :: D ) ;
41- assert_eq ! ( ( Test :: A | Test :: C ) ^ ( Test :: C | Test :: B ) , Test :: A | Test :: B ) ;
4240 assert_eq ! ( BitFlags :: <Test >:: from_bits_truncate( 4 ) , Test :: C ) ;
4341 assert_eq ! ( BitFlags :: <Test >:: from_bits_truncate( 5 ) , Test :: A | Test :: C ) ;
4442 assert_eq ! (
@@ -51,28 +49,41 @@ fn test_foo() {
5149 BitFlags :: <Test >:: from_bits( 15 ) . unwrap( ) ,
5250 BitFlags :: <Test >:: all( )
5351 ) ;
54- {
55- let mut b = Test :: A | Test :: B ;
56- b. insert ( Test :: C ) ;
57- assert_eq ! ( b, Test :: A | Test :: B | Test :: C ) ;
58- }
52+ assert_eq ! ( ( Test :: A | Test :: B ) . bits( ) , 3 ) ;
53+ assert_eq ! ( ( !( Test :: A | Test :: B ) ) . bits( ) , 12 ) ;
54+ assert_eq ! ( BitFlags :: <Test >:: all( ) . bits( ) , 15 ) ;
55+ assert_eq ! ( BitFlags :: <Default6 >:: default ( ) , Default6 :: B | Default6 :: C ) ;
56+ }
57+
58+ #[ test]
59+ fn test_ops ( ) {
60+ assert_eq ! ( !Test :: A , Test :: B | Test :: C | Test :: D ) ;
61+ assert_eq ! ( ( Test :: A | Test :: C ) ^ ( Test :: C | Test :: B ) , Test :: A | Test :: B ) ;
5962 assert ! ( ( Test :: A | Test :: B ) . intersects( Test :: B ) ) ;
6063 assert ! ( !( Test :: A | Test :: B ) . intersects( Test :: C ) ) ;
6164 assert ! ( ( Test :: A | Test :: B | Test :: C ) . contains( Test :: A | Test :: B ) ) ;
6265 assert ! ( !( Test :: A | Test :: B | Test :: C ) . contains( Test :: A | Test :: D ) ) ;
6366 assert_eq ! ( !( Test :: A | Test :: B ) , Test :: C | Test :: D ) ;
64- assert_eq ! ( ( Test :: A | Test :: B ) . bits( ) , 3 ) ;
65- assert_eq ! ( ( !( Test :: A | Test :: B ) ) . bits( ) , 12 ) ;
66- assert_eq ! ( BitFlags :: <Test >:: all( ) . bits( ) , 15 ) ;
67+ assert_eq ! ( ( Test :: A ^ Test :: B ) , Test :: A | Test :: B ) ;
68+ }
69+
70+ #[ test]
71+ fn test_mutation ( ) {
72+ {
73+ let mut b = Test :: A | Test :: B ;
74+ b. insert ( Test :: C ) ;
75+ assert_eq ! ( b, Test :: A | Test :: B | Test :: C ) ;
76+ }
6777 {
6878 let mut b = Test :: A | Test :: B | Test :: C ;
6979 b. remove ( Test :: B ) ;
7080 assert_eq ! ( b, Test :: A | Test :: C ) ;
7181 }
72- assert_eq ! ( ( Test :: A ^ Test :: B ) , Test :: A | Test :: B ) ;
73-
74- assert_eq ! ( BitFlags :: <Default6 >:: default ( ) , Default6 :: B | Default6 :: C ) ;
82+ }
7583
84+ #[ test]
85+ fn test_to_flag ( ) {
86+ use enumflags2:: BitFlags ;
7687 assert_eq ! ( BitFlags :: <Test >:: empty( ) . to_flag( ) , None ) ;
7788 assert_eq ! ( BitFlags :: <Test >:: from( Test :: B ) . to_flag( ) , Some ( Test :: B ) ) ;
7889 assert_eq ! ( ( Test :: A | Test :: C ) . to_flag( ) , None ) ;
0 commit comments