Skip to content

Commit 9a59b11

Browse files
authored
Wrote tests for compressor functions (#48)
* Wrote tests for create_new_tree * wrote tests for get_delta
1 parent aa6137c commit 9a59b11

File tree

3 files changed

+779
-128
lines changed

3 files changed

+779
-128
lines changed

src/compressor.rs

Lines changed: 3 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -250,132 +250,7 @@ impl<'a> Compressor<'a> {
250250
}
251251

252252
#[cfg(test)]
253-
mod level_tests {
254-
use crate::compressor::Level;
255-
#[test]
256-
fn new_produces_empty_level() {
257-
let l = Level::new(15);
258-
assert_eq!(l.max_length, 15);
259-
assert_eq!(l.current_chain_length, 0);
260-
assert_eq!(l.current, None);
261-
}
262-
263-
#[test]
264-
fn update_adds_to_non_full_level() {
265-
let mut l = Level::new(10);
266-
l.update(7, true);
267-
assert_eq!(l.max_length, 10);
268-
assert_eq!(l.current_chain_length, 1);
269-
assert_eq!(l.current, Some(7));
270-
}
271-
272-
#[test]
273-
#[should_panic(expected = "Tried to add to an already full level")]
274-
fn update_panics_if_adding_and_too_full() {
275-
let mut l = Level::new(5);
276-
l.update(1, true);
277-
l.update(2, true);
278-
l.update(3, true);
279-
l.update(4, true);
280-
l.update(5, true);
281-
l.update(6, true);
282-
}
283-
284-
#[test]
285-
fn update_resets_level_correctly() {
286-
let mut l = Level::new(5);
287-
l.update(1, true);
288-
l.update(2, true);
289-
l.update(3, true);
290-
l.update(4, true);
291-
l.update(5, true);
292-
l.update(6, false);
293-
assert_eq!(l.max_length, 5);
294-
assert_eq!(l.current_chain_length, 1);
295-
assert_eq!(l.current, Some(6));
296-
}
297-
298-
#[test]
299-
fn get_current_returns_current() {
300-
let mut l = Level::new(5);
301-
assert_eq!(l.get_current(), None);
302-
l.update(23, true);
303-
assert_eq!(l.get_current(), Some(23));
304-
}
305-
306-
#[test]
307-
fn has_space_returns_true_if_empty() {
308-
let l = Level::new(15);
309-
assert_eq!(l.has_space(), true);
310-
}
311-
312-
#[test]
313-
fn has_space_returns_true_if_part_full() {
314-
let mut l = Level::new(15);
315-
l.update(12, true);
316-
l.update(234, true);
317-
l.update(1, true);
318-
l.update(143, true);
319-
l.update(15, true);
320-
assert_eq!(l.has_space(), true);
321-
}
322-
323-
#[test]
324-
fn has_space_returns_false_if_full() {
325-
let mut l = Level::new(5);
326-
l.update(1, true);
327-
l.update(2, true);
328-
l.update(3, true);
329-
l.update(4, true);
330-
l.update(5, true);
331-
assert_eq!(l.has_space(), false);
332-
}
333-
}
334-
335-
#[test]
336-
fn test_new_map() {
337-
let mut initial: BTreeMap<i64, StateGroupEntry> = BTreeMap::new();
338-
339-
let mut prev = None;
340-
for i in 0i64..=13i64 {
341-
initial.insert(
342-
i,
343-
StateGroupEntry {
344-
in_range: true,
345-
prev_state_group: prev,
346-
state_map: StateMap::new(),
347-
},
348-
);
253+
mod level_tests;
349254

350-
prev = Some(i)
351-
}
352-
353-
let compressor = Compressor::compress(&initial, &[3, 3]);
354-
355-
let new_state = compressor.new_state_group_map;
356-
357-
let expected_edges: BTreeMap<i64, i64> = vec![
358-
(1, 0),
359-
(2, 1),
360-
(4, 3),
361-
(5, 4),
362-
(6, 3),
363-
(7, 6),
364-
(8, 7),
365-
(9, 6),
366-
(10, 9),
367-
(11, 10),
368-
(13, 12),
369-
]
370-
.into_iter()
371-
.collect();
372-
373-
for sg in 0i64..=13i64 {
374-
assert_eq!(
375-
expected_edges.get(&sg).cloned(),
376-
new_state[&sg].prev_state_group,
377-
"state group {} did not match expected",
378-
sg,
379-
);
380-
}
381-
}
255+
#[cfg(test)]
256+
mod compressor_tests;

0 commit comments

Comments
 (0)