import strings fn test_sb() { mut sb := strings.Builder{} sb.write('hi') sb.write('!') sb.write('hello') assert sb.len == 8 assert sb.str() == 'hi!hello' assert sb.len == 0 /// sb = strings.new_builder(10) sb.write('a') sb.write('b') assert sb.len == 2 assert sb.str() == 'ab' /// sb = strings.new_builder(10) sb.write('123456') assert sb.cut_last(2) == '56' assert sb.str() == '1234' /// /* sb = strings.new_builder(10) sb.write('123456') x := sb.cut_to(2) assert x == '456' assert sb.str() == '123' */ } const ( n = 100000 ) fn test_big_sb() { mut sb := strings.new_builder(100) mut sb2 := strings.new_builder(10000) for i in 0..n { sb.writeln(i.str()) sb2.write('+') } s := sb.str() lines := s.split_into_lines() assert lines.len == n assert lines[0] == '0' assert lines[1] == '1' assert lines[777] == '777' assert lines[98765] == '98765' println(sb2.len) assert sb2.len == n } fn test_byte_write() { mut sb := strings.new_builder(100) temp_str := "byte testing" mut count := 0 for word in temp_str { sb.write_b(word) count++ assert count == sb.len } assert sb.str() == temp_str }