MCPcopy Create free account
hub / github.com/chanced/jsonptr / pop_front_works_with_empty_strings

Function pop_front_works_with_empty_strings

src/pointer.rs:1654–1695  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1652
1653 #[test]
1654 fn pop_front_works_with_empty_strings() {
1655 {
1656 let mut ptr = PointerBuf::from_tokens(["bar", "", ""]);
1657
1658 assert_eq!(ptr.tokens().count(), 3);
1659 let mut token = ptr.pop_front();
1660 assert_eq!(token, Some(Token::new("bar")));
1661 assert_eq!(ptr.tokens().count(), 2);
1662 token = ptr.pop_front();
1663 assert_eq!(token, Some(Token::new("")));
1664 assert_eq!(ptr.tokens().count(), 1);
1665 token = ptr.pop_front();
1666 assert_eq!(token, Some(Token::new("")));
1667 assert_eq!(ptr.tokens().count(), 0);
1668 assert_eq!(ptr, Pointer::root());
1669 }
1670 {
1671 let mut ptr = PointerBuf::new();
1672 assert_eq!(ptr.tokens().count(), 0);
1673 ptr.push_back("");
1674 assert_eq!(ptr.tokens().count(), 1);
1675 ptr.pop_back();
1676 assert_eq!(ptr.tokens().count(), 0);
1677 }
1678 {
1679 let mut ptr = PointerBuf::new();
1680 let input = ["", "", "", "foo", "", "bar", "baz", ""];
1681 for (idx, &s) in input.iter().enumerate() {
1682 assert_eq!(ptr.tokens().count(), idx);
1683 ptr.push_back(s);
1684 }
1685 assert_eq!(ptr.tokens().count(), input.len());
1686 for (idx, s) in input.iter().enumerate() {
1687 assert_eq!(ptr.tokens().count(), 8 - idx);
1688 assert_eq!(ptr.front().unwrap().decoded(), *s);
1689 assert_eq!(ptr.pop_front().unwrap().decoded(), *s);
1690 }
1691 assert_eq!(ptr.tokens().count(), 0);
1692 assert!(ptr.front().is_none());
1693 assert!(ptr.pop_front().is_none());
1694 }
1695 }
1696
1697 #[test]
1698 fn formatting() {

Callers

nothing calls this directly

Calls 5

from_tokensFunction · 0.85
newFunction · 0.85
pop_frontMethod · 0.80
push_backMethod · 0.80
pop_backMethod · 0.80

Tested by

no test coverage detected