diff --git a/crates/loro-internal/src/container/text/rope.rs b/crates/loro-internal/src/container/text/rope.rs index c770c6b9..fbb50083 100644 --- a/crates/loro-internal/src/container/text/rope.rs +++ b/crates/loro-internal/src/container/text/rope.rs @@ -74,8 +74,9 @@ impl Rope { loop { match node { Node::Internal(internal_node) => { - if index == 0{ - return 0 + if index == 0 { + assert_eq!(ans, 0); + return 0; } let result = find_pos_internal(internal_node, index, &src_cache); if !result.found { diff --git a/crates/loro-internal/tests/test.rs b/crates/loro-internal/tests/test.rs index 82f24cac..5adaab1a 100644 --- a/crates/loro-internal/tests/test.rs +++ b/crates/loro-internal/tests/test.rs @@ -31,10 +31,11 @@ fn example_text() { text.insert_utf16(&doc, 0, "你好").unwrap(); text.insert_utf16(&doc, 1, "我").unwrap(); text.insert_utf16(&doc, 1, "abc").unwrap(); - text.insert_utf16(&doc, 2, "dd").unwrap(); - println!("text {:?}", text.get_value()); + assert_eq!(text.get_value().as_string().unwrap().as_ref(), "你abc我好"); text.delete_utf16(&doc, 1, 1).unwrap(); - println!("text {:?}", text.get_value()); + assert_eq!(text.get_value().as_string().unwrap().as_ref(), "你bc我好"); + text.delete_utf16(&doc, 0, 1).unwrap(); + assert_eq!(text.get_value().as_string().unwrap().as_ref(), "bc我好"); } #[test]