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 }