pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/ansi/ansi_test.go (about)

     1  package ansi
     2  
     3  // ////////////////////////////////////////////////////////////////////////////////// //
     4  //                                                                                    //
     5  //                         Copyright (c) 2022 ESSENTIAL KAOS                          //
     6  //      Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>     //
     7  //                                                                                    //
     8  // ////////////////////////////////////////////////////////////////////////////////// //
     9  
    10  import (
    11  	"testing"
    12  
    13  	. "pkg.re/essentialkaos/check.v1"
    14  )
    15  
    16  // ////////////////////////////////////////////////////////////////////////////////// //
    17  
    18  func Test(t *testing.T) { TestingT(t) }
    19  
    20  type ANSISuite struct{}
    21  
    22  // ////////////////////////////////////////////////////////////////////////////////// //
    23  
    24  var _ = Suite(&ANSISuite{})
    25  
    26  // ////////////////////////////////////////////////////////////////////////////////// //
    27  
    28  func (s *ANSISuite) TestHasCodes(c *C) {
    29  	c.Assert(HasCodes(""), Equals, false)
    30  	c.Assert(HasCodes("ABCD^]"), Equals, false)
    31  	c.Assert(HasCodes("\033ABCD"), Equals, true)
    32  	c.Assert(HasCodes("\x1bABCD"), Equals, true)
    33  	c.Assert(HasCodes("\x1BABCD"), Equals, true)
    34  }
    35  
    36  func (s *ANSISuite) TestHasCodesBytes(c *C) {
    37  	c.Assert(HasCodesBytes([]byte{}), Equals, false)
    38  	c.Assert(HasCodesBytes([]byte("ABCD^]")), Equals, false)
    39  	c.Assert(HasCodesBytes([]byte("\033ABCD")), Equals, true)
    40  	c.Assert(HasCodesBytes([]byte("\x1bABCD")), Equals, true)
    41  	c.Assert(HasCodesBytes([]byte("\x1BABCD")), Equals, true)
    42  }
    43  
    44  func (s *ANSISuite) TestRemoveCodes(c *C) {
    45  	c.Assert(RemoveCodes(""), Equals, "")
    46  	c.Assert(RemoveCodes("ABCD"), Equals, "ABCD")
    47  	c.Assert(RemoveCodes("\033[40;38;5;82mHello \x1b[30;48;5;82mWorld!\x1B[0m"), Equals, "Hello World!")
    48  }
    49  
    50  func (s *ANSISuite) TestRemoveCodesBytes(c *C) {
    51  	c.Assert(RemoveCodesBytes([]byte{}), DeepEquals, []byte{})
    52  	c.Assert(RemoveCodesBytes([]byte("ABCD")), DeepEquals, []byte("ABCD"))
    53  	c.Assert(RemoveCodesBytes(
    54  		[]byte("\033[40;38;5;82mHello \x1b[30;48;5;82mWorld!\x1B[0m")),
    55  		DeepEquals, []byte("Hello World!"),
    56  	)
    57  }
    58  
    59  func (s *ANSISuite) BenchmarkRemoveCodes(c *C) {
    60  	data := "\033[40;38;5;82mHello \x1b[30;48;5;82mWorld!\x1B[0m"
    61  
    62  	for i := 0; i < c.N; i++ {
    63  		RemoveCodes(data)
    64  	}
    65  }
    66  
    67  func (s *ANSISuite) BenchmarkRemoveCodesBytes(c *C) {
    68  	data := []byte("\033[40;38;5;82mHello \x1b[30;48;5;82mWorld!\x1B[0m")
    69  
    70  	for i := 0; i < c.N; i++ {
    71  		RemoveCodesBytes(data)
    72  	}
    73  }