@@ -154,6 +154,10 @@ impl Condition {
154
154
pub fn get_cardinality ( & self , spanning_set : & SpanningSet ) -> Result < u32 , EngineError > {
155
155
Ok ( self . to_range ( spanning_set) ?. get_cardinality ( ) )
156
156
}
157
+
158
+ pub fn get_hot_bits ( & self ) -> Vec < bool > {
159
+ self . 0 . get_hot_bits ( )
160
+ }
157
161
}
158
162
159
163
#[ cfg( test) ]
@@ -190,10 +194,19 @@ mod tests {
190
194
fn test_empty_total ( ) -> Result < ( ) , String > {
191
195
let spanning_set = get_spanning_set ( ) ;
192
196
let empty = Condition :: empty ( & spanning_set) ;
197
+ //println!("{empty}");
193
198
assert ! ( empty. is_empty( ) ) ;
199
+ assert_eq ! (
200
+ vec![ false , false , false , false ] ,
201
+ empty. get_hot_bits( )
202
+ ) ;
194
203
let total = Condition :: total ( & spanning_set) ;
195
- println ! ( "{total}" ) ;
204
+ // println!("{total}");
196
205
assert ! ( total. is_total( ) ) ;
206
+ assert_eq ! (
207
+ vec![ true , true , true , true ] ,
208
+ total. get_hot_bits( )
209
+ ) ;
197
210
198
211
assert_eq ! ( Range :: empty( ) , empty. to_range( & spanning_set) . unwrap( ) ) ;
199
212
assert_eq ! ( Range :: total( ) , total. to_range( & spanning_set) . unwrap( ) ) ;
@@ -221,10 +234,19 @@ mod tests {
221
234
empty,
222
235
Condition :: from_range( & Range :: empty( ) , & spanning_set) . unwrap( )
223
236
) ;
237
+ assert_eq ! (
238
+ vec![ false ] ,
239
+ empty. get_hot_bits( )
240
+ ) ;
241
+
224
242
assert_eq ! (
225
243
total,
226
244
Condition :: from_range( & Range :: total( ) , & spanning_set) . unwrap( )
227
245
) ;
246
+ assert_eq ! (
247
+ vec![ true ] ,
248
+ total. get_hot_bits( )
249
+ ) ;
228
250
229
251
assert_eq ! ( empty, total. complement( ) ) ;
230
252
assert_eq ! ( total, empty. complement( ) ) ;
0 commit comments