@@ -489,18 +489,15 @@ impl Bitv {
489
489
490
490
491
491
/**
492
- * Compare a bitvector to a vector of uint
492
+ * Compare a bitvector to a vector of bool.
493
493
*
494
- * The uint vector is expected to only contain the values 0u and 1u. Both
495
- * the bitvector and vector must have the same length
494
+ * Both the bitvector and vector must have the same length.
496
495
*/
497
- pub fn eq_vec ( & self , v : ~ [ uint ] ) -> bool {
496
+ pub fn eq_vec ( & self , v : & [ bool ] ) -> bool {
498
497
assert_eq ! ( self . nbits, v. len( ) ) ;
499
498
let mut i = 0 ;
500
499
while i < self . nbits {
501
- let w0 = self . get ( i) ;
502
- let w1 = v[ i] ;
503
- if !w0 && w1 != 0 u || w0 && w1 == 0 u { return false ; }
500
+ if self . get ( i) != v[ i] { return false ; }
504
501
i = i + 1 ;
505
502
}
506
503
true
@@ -887,16 +884,16 @@ mod tests {
887
884
#[test]
888
885
fn test_0_elements() {
889
886
let act = Bitv::new(0u, false);
890
- let exp = vec::from_elem::<uint >(0u, 0u );
887
+ let exp = vec::from_elem::<bool >(0u, false );
891
888
assert!(act.eq_vec(exp));
892
889
}
893
890
894
891
#[test]
895
892
fn test_1_element() {
896
893
let mut act = Bitv::new(1u, false);
897
- assert!(act.eq_vec(~[0u ]));
894
+ assert!(act.eq_vec(~[false ]));
898
895
act = Bitv::new(1u, true);
899
- assert!(act.eq_vec(~[1u ]));
896
+ assert!(act.eq_vec(~[true ]));
900
897
}
901
898
902
899
#[test]
@@ -913,11 +910,12 @@ mod tests {
913
910
// all 0
914
911
915
912
act = Bitv::new(10u, false);
916
- assert!((act.eq_vec(~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u])));
913
+ assert!((act.eq_vec(
914
+ ~[false, false, false, false, false, false, false, false, false, false])));
917
915
// all 1
918
916
919
917
act = Bitv::new(10u, true);
920
- assert!((act.eq_vec(~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u ])));
918
+ assert!((act.eq_vec(~[true, true, true, true, true, true, true, true, true, true ])));
921
919
// mixed
922
920
923
921
act = Bitv::new(10u, false);
@@ -926,7 +924,7 @@ mod tests {
926
924
act.set(2u, true);
927
925
act.set(3u, true);
928
926
act.set(4u, true);
929
- assert!((act.eq_vec(~[1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u ])));
927
+ assert!((act.eq_vec(~[true, true, true, true, true, false, false, false, false, false ])));
930
928
// mixed
931
929
932
930
act = Bitv::new(10u, false);
@@ -935,15 +933,15 @@ mod tests {
935
933
act.set(7u, true);
936
934
act.set(8u, true);
937
935
act.set(9u, true);
938
- assert!((act.eq_vec(~[0u, 0u, 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u ])));
936
+ assert!((act.eq_vec(~[false, false, false, false, false, true, true, true, true, true ])));
939
937
// mixed
940
938
941
939
act = Bitv::new(10u, false);
942
940
act.set(0u, true);
943
941
act.set(3u, true);
944
942
act.set(6u, true);
945
943
act.set(9u, true);
946
- assert!((act.eq_vec(~[1u, 0u, 0u, 1u, 0u, 0u, 1u, 0u, 0u, 1u ])));
944
+ assert!((act.eq_vec(~[true, false, false, true, false, false, true, false, false, true ])));
947
945
}
948
946
949
947
#[test]
@@ -953,16 +951,16 @@ mod tests {
953
951
954
952
act = Bitv::new(31u, false);
955
953
assert!(act.eq_vec(
956
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
957
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
958
- 0u, 0u, 0u, 0u, 0u ]));
954
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
955
+ false, false, false, false, false, false, false, false, false, false, false, false ,
956
+ false, false, false, false, false, false, false, false ]));
959
957
// all 1
960
958
961
959
act = Bitv::new(31u, true);
962
960
assert!(act.eq_vec(
963
- ~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u ,
964
- 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u ,
965
- 1u, 1u, 1u, 1u, 1u ]));
961
+ ~[true, true, true, true, true, true, true, true, true, true, true, true, true ,
962
+ true, true, true, true, true, true, true, true, true, true, true, true, true, true ,
963
+ true, true, true, true ]));
966
964
// mixed
967
965
968
966
act = Bitv::new(31u, false);
@@ -975,9 +973,9 @@ mod tests {
975
973
act.set(6u, true);
976
974
act.set(7u, true);
977
975
assert!(act.eq_vec(
978
- ~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u ,
979
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
980
- 0u, 0u, 0u, 0u, 0u ]));
976
+ ~[true, true, true, true, true, true, true, true, false, false, false, false, false ,
977
+ false, false, false, false, false, false, false, false, false, false, false, false ,
978
+ false, false, false, false, false, false ]));
981
979
// mixed
982
980
983
981
act = Bitv::new(31u, false);
@@ -990,9 +988,9 @@ mod tests {
990
988
act.set(22u, true);
991
989
act.set(23u, true);
992
990
assert!(act.eq_vec(
993
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
994
- 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u ,
995
- 0u, 0u, 0u, 0u, 0u ]));
991
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
992
+ false, false, false, false, false, true, true, true, true, true, true, true, true ,
993
+ false, false, false, false, false, false, false ]));
996
994
// mixed
997
995
998
996
act = Bitv::new(31u, false);
@@ -1004,19 +1002,19 @@ mod tests {
1004
1002
act.set(29u, true);
1005
1003
act.set(30u, true);
1006
1004
assert!(act.eq_vec(
1007
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1008
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u ,
1009
- 1u, 1u, 1u, 1u, 1u ]));
1005
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
1006
+ false, false, false, false, false, false, false, false, false, false, false, false ,
1007
+ false, true, true, true, true, true, true, true ]));
1010
1008
// mixed
1011
1009
1012
1010
act = Bitv::new(31u, false);
1013
1011
act.set(3u, true);
1014
1012
act.set(17u, true);
1015
1013
act.set(30u, true);
1016
1014
assert!(act.eq_vec(
1017
- ~[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1018
- 0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1019
- 0u, 0u, 0u, 0u, 1u ]));
1015
+ ~[false, false, false, true, false, false, false, false, false, false, false, false ,
1016
+ false, false, false, false, false, true, false, false, false, false, false, false ,
1017
+ false, false, false, false, false, false, true ]));
1020
1018
}
1021
1019
1022
1020
#[test]
@@ -1026,16 +1024,16 @@ mod tests {
1026
1024
1027
1025
act = Bitv::new(32u, false);
1028
1026
assert!(act.eq_vec(
1029
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1030
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1031
- 0u, 0u, 0u, 0u, 0u, 0u ]));
1027
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
1028
+ false, false, false, false, false, false, false, false, false, false, false, false ,
1029
+ false, false, false, false, false, false, false, false, false ]));
1032
1030
// all 1
1033
1031
1034
1032
act = Bitv::new(32u, true);
1035
1033
assert!(act.eq_vec(
1036
- ~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u ,
1037
- 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u ,
1038
- 1u, 1u, 1u, 1u, 1u, 1u ]));
1034
+ ~[true, true, true, true, true, true, true, true, true, true, true, true, true ,
1035
+ true, true, true, true, true, true, true, true, true, true, true, true, true, true ,
1036
+ true, true, true, true, true ]));
1039
1037
// mixed
1040
1038
1041
1039
act = Bitv::new(32u, false);
@@ -1048,9 +1046,9 @@ mod tests {
1048
1046
act.set(6u, true);
1049
1047
act.set(7u, true);
1050
1048
assert!(act.eq_vec(
1051
- ~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u ,
1052
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1053
- 0u, 0u, 0u, 0u, 0u, 0u ]));
1049
+ ~[true, true, true, true, true, true, true, true, false, false, false, false, false ,
1050
+ false, false, false, false, false, false, false, false, false, false, false, false ,
1051
+ false, false, false, false, false, false, false ]));
1054
1052
// mixed
1055
1053
1056
1054
act = Bitv::new(32u, false);
@@ -1063,9 +1061,9 @@ mod tests {
1063
1061
act.set(22u, true);
1064
1062
act.set(23u, true);
1065
1063
assert!(act.eq_vec(
1066
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1067
- 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u ,
1068
- 0u, 0u, 0u, 0u, 0u, 0u ]));
1064
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
1065
+ false, false, false, false, false, true, true, true, true, true, true, true, true ,
1066
+ false, false, false, false, false, false, false, false ]));
1069
1067
// mixed
1070
1068
1071
1069
act = Bitv::new(32u, false);
@@ -1078,9 +1076,9 @@ mod tests {
1078
1076
act.set(30u, true);
1079
1077
act.set(31u, true);
1080
1078
assert!(act.eq_vec(
1081
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1082
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u ,
1083
- 1u, 1u, 1u, 1u, 1u, 1u ]));
1079
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
1080
+ false, false, false, false, false, false, false, false, false, false, false, false ,
1081
+ false, true, true, true, true, true, true, true, true ]));
1084
1082
// mixed
1085
1083
1086
1084
act = Bitv::new(32u, false);
@@ -1089,9 +1087,9 @@ mod tests {
1089
1087
act.set(30u, true);
1090
1088
act.set(31u, true);
1091
1089
assert!(act.eq_vec(
1092
- ~[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1093
- 0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1094
- 0u, 0u, 0u, 0u, 1u, 1u ]));
1090
+ ~[false, false, false, true, false, false, false, false, false, false, false, false ,
1091
+ false, false, false, false, false, true, false, false, false, false, false, false ,
1092
+ false, false, false, false, false, false, true, true ]));
1095
1093
}
1096
1094
1097
1095
#[test]
@@ -1101,16 +1099,16 @@ mod tests {
1101
1099
1102
1100
act = Bitv::new(33u, false);
1103
1101
assert!(act.eq_vec(
1104
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1105
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1106
- 0u, 0u, 0u, 0u, 0u, 0u, 0u ]));
1102
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
1103
+ false, false, false, false, false, false, false, false, false, false, false, false ,
1104
+ false, false, false, false, false, false, false, false, false, false ]));
1107
1105
// all 1
1108
1106
1109
1107
act = Bitv::new(33u, true);
1110
1108
assert!(act.eq_vec(
1111
- ~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u ,
1112
- 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u ,
1113
- 1u, 1u, 1u, 1u, 1u, 1u, 1u ]));
1109
+ ~[true, true, true, true, true, true, true, true, true, true, true, true, true ,
1110
+ true, true, true, true, true, true, true, true, true, true, true, true, true, true ,
1111
+ true, true, true, true, true, true ]));
1114
1112
// mixed
1115
1113
1116
1114
act = Bitv::new(33u, false);
@@ -1123,9 +1121,9 @@ mod tests {
1123
1121
act.set(6u, true);
1124
1122
act.set(7u, true);
1125
1123
assert!(act.eq_vec(
1126
- ~[1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u ,
1127
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1128
- 0u, 0u, 0u, 0u, 0u, 0u, 0u ]));
1124
+ ~[true, true, true, true, true, true, true, true, false, false, false, false, false ,
1125
+ false, false, false, false, false, false, false, false, false, false, false, false ,
1126
+ false, false, false, false, false, false, false, false ]));
1129
1127
// mixed
1130
1128
1131
1129
act = Bitv::new(33u, false);
@@ -1138,9 +1136,9 @@ mod tests {
1138
1136
act.set(22u, true);
1139
1137
act.set(23u, true);
1140
1138
assert!(act.eq_vec(
1141
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1142
- 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u ,
1143
- 0u, 0u, 0u, 0u, 0u, 0u, 0u ]));
1139
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
1140
+ false, false, false, false, false, true, true, true, true, true, true, true, true ,
1141
+ false, false, false, false, false, false, false, false, false ]));
1144
1142
// mixed
1145
1143
1146
1144
act = Bitv::new(33u, false);
@@ -1153,9 +1151,9 @@ mod tests {
1153
1151
act.set(30u, true);
1154
1152
act.set(31u, true);
1155
1153
assert!(act.eq_vec(
1156
- ~[0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1157
- 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u ,
1158
- 1u, 1u, 1u, 1u, 1u, 1u, 0u ]));
1154
+ ~[false, false, false, false, false, false, false, false, false, false, false ,
1155
+ false, false, false, false, false, false, false, false, false, false, false, false ,
1156
+ false, true, true, true, true, true, true, true, true, false ]));
1159
1157
// mixed
1160
1158
1161
1159
act = Bitv::new(33u, false);
@@ -1165,9 +1163,9 @@ mod tests {
1165
1163
act.set(31u, true);
1166
1164
act.set(32u, true);
1167
1165
assert!(act.eq_vec(
1168
- ~[0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1169
- 0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u ,
1170
- 0u, 0u, 0u, 0u, 1u, 1u, 1u ]));
1166
+ ~[false, false, false, true, false, false, false, false, false, false, false, false ,
1167
+ false, false, false, false, false, true, false, false, false, false, false, false ,
1168
+ false, false, false, false, false, false, true, true, true ]));
1171
1169
}
1172
1170
1173
1171
#[test]
0 commit comments