summaryrefslogtreecommitdiffstats
path: root/src/indexer/merge_policy.rs
diff options
context:
space:
mode:
authorPaul Masurel <paul.masurel@gmail.com>2017-02-28 20:43:16 +0900
committerPaul Masurel <paul.masurel@gmail.com>2017-03-10 09:05:51 +0900
commitcc2f78184bf3e298e2efd70175e67bff66f7b7c7 (patch)
tree05142e4aa69320d42faae5a68ef87b81b8921fe4 /src/indexer/merge_policy.rs
parent673423f7628698df42ea9833d2e6ec9eee3ebe46 (diff)
Added unit test for #96
Diffstat (limited to 'src/indexer/merge_policy.rs')
-rw-r--r--src/indexer/merge_policy.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/indexer/merge_policy.rs b/src/indexer/merge_policy.rs
index ae10643..5e3adcf 100644
--- a/src/indexer/merge_policy.rs
+++ b/src/indexer/merge_policy.rs
@@ -43,3 +43,28 @@ impl MergePolicy for NoMergePolicy {
}
}
+
+#[cfg(test)]
+pub mod tests {
+
+ use super::*;
+ use core::SegmentId;
+ use core::SegmentMeta;
+
+ #[derive(Debug)]
+ pub struct MergeWheneverPossible;
+
+ impl MergePolicy for MergeWheneverPossible {
+ fn compute_merge_candidates(&self, segment_metas: &[SegmentMeta]) -> Vec<MergeCandidate> {
+ let segment_ids = segment_metas
+ .iter()
+ .map(|segment_meta| segment_meta.id())
+ .collect::<Vec<SegmentId>>();
+ vec!(MergeCandidate(segment_ids))
+ }
+
+ fn box_clone(&self) -> Box<MergePolicy> {
+ box MergeWheneverPossible
+ }
+ }
+} \ No newline at end of file