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  }