github.com/mitranim/gg@v0.1.17/buf_test.go (about) 1 package gg_test 2 3 import ( 4 "testing" 5 6 "github.com/mitranim/gg" 7 "github.com/mitranim/gg/gtest" 8 ) 9 10 // TODO dedup with `TestToString`. 11 func TestBuf_String(t *testing.T) { 12 defer gtest.Catch(t) 13 14 gtest.Zero(gg.Buf(nil).String()) 15 16 test := func(src string) { 17 buf := gg.Buf(src) 18 tar := buf.String() 19 20 gtest.Eq(tar, src) 21 gtest.Eq(gg.TextDat(buf), gg.TextDat(tar)) 22 } 23 24 test(``) 25 test(`a`) 26 test(`ab`) 27 test(`abc`) 28 29 t.Run(`mutation`, func(t *testing.T) { 30 defer gtest.Catch(t) 31 32 buf := gg.Buf(`abc`) 33 tar := buf.String() 34 gtest.Eq(tar, `abc`) 35 36 buf[0] = 'd' 37 gtest.Eq(tar, `dbc`) 38 }) 39 } 40 41 func TestBuf_AppendAnys(t *testing.T) { 42 defer gtest.Catch(t) 43 44 var buf gg.Buf 45 gtest.Zero(buf) 46 47 buf.AppendAnys() 48 gtest.Zero(buf) 49 50 buf.AppendAnys(nil) 51 gtest.Zero(buf) 52 53 buf.AppendAnys(``, nil, ``) 54 gtest.Zero(buf) 55 56 buf.AppendAnys(10) 57 gtest.Str(buf, `10`) 58 59 buf.AppendAnys(` `, 20, ` `, 30) 60 gtest.Str(buf, `10 20 30`) 61 } 62 63 func TestBuf_AppendAnysln(t *testing.T) { 64 defer gtest.Catch(t) 65 66 { 67 var buf gg.Buf 68 gtest.Zero(buf) 69 } 70 71 { 72 var buf gg.Buf 73 buf.AppendAnysln() 74 gtest.Zero(buf) 75 } 76 77 { 78 var buf gg.Buf 79 buf.AppendAnysln(nil) 80 gtest.Zero(buf) 81 } 82 83 { 84 var buf gg.Buf 85 buf.AppendAnysln(nil, ``, nil) 86 gtest.Zero(buf) 87 88 buf.AppendAnysln() 89 gtest.Zero(buf) 90 } 91 92 { 93 var buf gg.Buf 94 buf.AppendAnysln(`one`, `two`+gg.Newline) 95 gtest.Str(buf, `onetwo`+gg.Newline) 96 } 97 98 { 99 var buf gg.Buf 100 buf.AppendAnysln(`one`+gg.Newline, `two`+gg.Newline) 101 gtest.Str(buf, `one`+gg.Newline+`two`+gg.Newline) 102 } 103 104 { 105 var buf gg.Buf 106 buf.AppendAnysln(`one`+gg.Newline, `two`) 107 gtest.Str(buf, `one`+gg.Newline+`two`+gg.Newline) 108 } 109 110 { 111 var buf gg.Buf 112 buf.AppendAnysln(`one`) 113 gtest.Str(buf, `one`+gg.Newline) 114 115 buf.AppendAnysln() 116 gtest.Str(buf, `one`+gg.Newline+gg.Newline) 117 118 buf.AppendAnysln(`two`) 119 gtest.Str(buf, `one`+gg.Newline+gg.Newline+`two`+gg.Newline) 120 121 buf.AppendAnysln() 122 gtest.Str(buf, `one`+gg.Newline+gg.Newline+`two`+gg.Newline+gg.Newline) 123 } 124 }