         XCTAssertEqual(lineString.lineNumber(at: 1), 2)
         XCTAssertEqual(lineString.lineRange(at: 1), NSRange(1..<3))  // "a\n"
         
-        for _ in (0..<10) {
+        for _ in (0..<20) {
             let string = String(" dog \n cat \n cow \n".shuffled())
             let lineString = LineString(string)
             

        XCTAssertEqual(lineString.lineNumber(at: 1), lineNumber)  // 2
        XCTAssertEqual(lineString.lineRange(at: 1), lineRange)    // NSRange(1..<3)
        
        for _ in (0..<10) {
            let lineString = LineString(String(" 🐶 \n 🐱 \n 🐮 \n".shuffled()))
            
            for index in (0..<lineString.string.length).shuffled() {

    }
    
    
    func testStringRemoval() {
        
        let string = "dog \n\n\n cat \n "
        let lineString = LineString(string)
        _ = lineString.lineNumber(at: string.length)
        
        lineString.string = lineString.string.replacingCharacters(in: NSRange(1..<3), with: "") as NSString  // "og"
        lineString.invalidateLineRanges(from: 1)
        XCTAssertEqual(lineString.string, "d \n\n\n cat \n ")
        XCTAssertEqual(lineString.lineNumber(at: 1), 1)
        XCTAssertEqual(lineString.lineRange(at: 1), NSRange(0..<3))  // "d \n"
        XCTAssertEqual(lineString.lineNumber(at: 3), 2)
        XCTAssertEqual(lineString.lineRange(at: 3), NSRange(3..<4))  // "\n"
        XCTAssertEqual(lineString.lineRange(at: 4), NSRange(4..<5))  // "\n"
        XCTAssertEqual(lineString.lineRange(at: 5), NSRange(5..<11))  // " cat \n"
        
        lineString.string = lineString.string.replacingCharacters(in: NSRange(1..<2), with: "") as NSString  // 1st " "
        lineString.invalidateLineRanges(from: 1)
        XCTAssertEqual(lineString.string, "d\n\n\n cat \n ")
        XCTAssertEqual(lineString.lineNumber(at: 1), 1)
        XCTAssertEqual(lineString.lineRange(at: 1), NSRange(0..<2))  // "d\n"
        XCTAssertEqual(lineString.lineRange(at: 2), NSRange(2..<3))  // "\n"
        XCTAssertEqual(lineString.lineRange(at: 3), NSRange(3..<4))  // "\n"
        XCTAssertEqual(lineString.lineRange(at: 4), NSRange(4..<10))  // " cat \n"
        
        lineString.string = lineString.string.replacingCharacters(in: NSRange(2..<4), with: "") as NSString  // "\n\n"
        lineString.invalidateLineRanges(from: 2)
        XCTAssertEqual(lineString.string, "d\n cat \n ")
        XCTAssertEqual(lineString.lineNumber(at: 1), 1)
        XCTAssertEqual(lineString.lineRange(at: 1), NSRange(0..<2))  // "d\n"
        XCTAssertEqual(lineString.lineRange(at: 2), NSRange(2..<8))  // " cat \n"
    }
    
    
    func testStringModification() {
        
        let string = "\n🐶"
