From fc43ab92803228bdd09ae21dc8a43d7b90d5d975 Mon Sep 17 00:00:00 2001 From: boraarslan Date: Fri, 3 Jun 2022 15:15:45 +0300 Subject: [PATCH] Add tests --- common/src/serialize.rs | 5 +++++ src/fastfield/multivalued/mod.rs | 31 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/common/src/serialize.rs b/common/src/serialize.rs index 4d48e16a7..e89ade653 100644 --- a/common/src/serialize.rs +++ b/common/src/serialize.rs @@ -247,6 +247,11 @@ pub mod test { fixed_size_test::(); } + #[test] + fn test_serialize_bool() { + fixed_size_test::(); + } + #[test] fn test_serialize_string() { assert_eq!(serialize_test(String::from("")), 1); diff --git a/src/fastfield/multivalued/mod.rs b/src/fastfield/multivalued/mod.rs index 45d08a8b8..659f2f47d 100644 --- a/src/fastfield/multivalued/mod.rs +++ b/src/fastfield/multivalued/mod.rs @@ -226,6 +226,37 @@ mod tests { Ok(()) } + #[test] + fn test_multivalued_bool() -> crate::Result<()> { + let mut schema_builder = Schema::builder(); + let field = schema_builder.add_bool_field( + "multifield", + NumericOptions::default().set_fast(Cardinality::MultiValues), + ); + let schema = schema_builder.build(); + let index = Index::create_in_ram(schema); + let mut index_writer = index.writer_for_tests()?; + index_writer.add_document(doc!(field=> true, field => false))?; + index_writer.add_document(doc!())?; + index_writer.add_document(doc!(field=> false))?; + index_writer.add_document(doc!(field=> true, field => true, field => false))?; + index_writer.commit()?; + + let searcher = index.reader()?.searcher(); + let segment_reader = searcher.segment_reader(0); + let mut vals = Vec::new(); + let multi_value_reader = segment_reader.fast_fields().bools(field).unwrap(); + multi_value_reader.get_vals(2, &mut vals); + assert_eq!(&vals, &[false]); + multi_value_reader.get_vals(0, &mut vals); + assert_eq!(&vals, &[true, false]); + multi_value_reader.get_vals(1, &mut vals); + assert!(vals.is_empty()); + multi_value_reader.get_vals(3, &mut vals); + assert_eq!(&vals, &[true, true, false]); + Ok(()) + } + fn test_multivalued_no_panic(ops: &[IndexingOp]) -> crate::Result<()> { let mut schema_builder = Schema::builder(); let field = schema_builder.add_u64_field(