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

Function pop_back_works_with_empty_strings

src/pointer.rs:1861–1902  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1859
1860 #[test]
1861 fn pop_back_works_with_empty_strings() {
1862 {
1863 let mut ptr = PointerBuf::new();
1864 ptr.push_back("");
1865 ptr.push_back("");
1866 ptr.push_back("bar");
1867
1868 assert_eq!(ptr.tokens().count(), 3);
1869 ptr.pop_back();
1870 assert_eq!(ptr.tokens().count(), 2);
1871 ptr.pop_back();
1872 assert_eq!(ptr.tokens().count(), 1);
1873 ptr.pop_back();
1874 assert_eq!(ptr.tokens().count(), 0);
1875 assert_eq!(ptr, PointerBuf::new());
1876 }
1877 {
1878 let mut ptr = PointerBuf::new();
1879 assert_eq!(ptr.tokens().count(), 0);
1880 ptr.push_back("");
1881 assert_eq!(ptr.tokens().count(), 1);
1882 ptr.pop_back();
1883 assert_eq!(ptr.tokens().count(), 0);
1884 }
1885 {
1886 let mut ptr = PointerBuf::new();
1887 let input = ["", "", "", "foo", "", "bar", "baz", ""];
1888 for (idx, &s) in input.iter().enumerate() {
1889 assert_eq!(ptr.tokens().count(), idx);
1890 ptr.push_back(s);
1891 }
1892 assert_eq!(ptr.tokens().count(), input.len());
1893 for (idx, s) in input.iter().enumerate().rev() {
1894 assert_eq!(ptr.tokens().count(), idx + 1);
1895 assert_eq!(ptr.back().unwrap().decoded(), *s);
1896 assert_eq!(ptr.pop_back().unwrap().decoded(), *s);
1897 }
1898 assert_eq!(ptr.tokens().count(), 0);
1899 assert!(ptr.back().is_none());
1900 assert!(ptr.pop_back().is_none());
1901 }
1902 }
1903
1904 #[test]
1905 // `clippy::useless_asref` is tripping here because the `as_ref` is being

Callers

nothing calls this directly

Calls 3

newFunction · 0.85
push_backMethod · 0.80
pop_backMethod · 0.80

Tested by

no test coverage detected