mirror of
https://github.com/zyedidia/micro.git
synced 2026-02-05 22:50:21 +09:00
The -l flag to the replace command means "literal" and will treat the search term literally instead of as a regular expression. The command bar also now supports expanding environment variables and running expressions through the shell and using the result in the command.
106 lines
2.4 KiB
Go
106 lines
2.4 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNumOccurences(t *testing.T) {
|
|
var tests = []struct {
|
|
inputStr string
|
|
inputChar byte
|
|
want int
|
|
}{
|
|
{"aaaa", 'a', 4},
|
|
{"\trfd\ta", '\t', 2},
|
|
{"∆ƒ\tø ® \t\t", '\t', 3},
|
|
}
|
|
for _, test := range tests {
|
|
if got := NumOccurrences(test.inputStr, test.inputChar); got != test.want {
|
|
t.Errorf("NumOccurences(%s, %c) = %d", test.inputStr, test.inputChar, got)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestSpaces(t *testing.T) {
|
|
var tests = []struct {
|
|
input int
|
|
want string
|
|
}{
|
|
{4, " "},
|
|
{0, ""},
|
|
}
|
|
for _, test := range tests {
|
|
if got := Spaces(test.input); got != test.want {
|
|
t.Errorf("Spaces(%d) = \"%s\"", test.input, got)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsWordChar(t *testing.T) {
|
|
if IsWordChar("t") == false {
|
|
t.Errorf("IsWordChar(t) = false")
|
|
}
|
|
if IsWordChar("T") == false {
|
|
t.Errorf("IsWordChar(T) = false")
|
|
}
|
|
if IsWordChar("5") == false {
|
|
t.Errorf("IsWordChar(5) = false")
|
|
}
|
|
if IsWordChar("_") == false {
|
|
t.Errorf("IsWordChar(_) = false")
|
|
}
|
|
if IsWordChar("ß") == false {
|
|
t.Errorf("IsWordChar(ß) = false")
|
|
}
|
|
if IsWordChar("~") == true {
|
|
t.Errorf("IsWordChar(~) = true")
|
|
}
|
|
if IsWordChar(" ") == true {
|
|
t.Errorf("IsWordChar( ) = true")
|
|
}
|
|
if IsWordChar(")") == true {
|
|
t.Errorf("IsWordChar()) = true")
|
|
}
|
|
if IsWordChar("\n") == true {
|
|
t.Errorf("IsWordChar(\n)) = true")
|
|
}
|
|
}
|
|
|
|
func TestStringWidth(t *testing.T) {
|
|
tabsize := 4
|
|
if w := StringWidth("1\t2", tabsize); w != 5 {
|
|
t.Error("StringWidth 1 Failed. Got", w)
|
|
}
|
|
if w := StringWidth("\t", tabsize); w != 4 {
|
|
t.Error("StringWidth 2 Failed. Got", w)
|
|
}
|
|
if w := StringWidth("1\t", tabsize); w != 4 {
|
|
t.Error("StringWidth 3 Failed. Got", w)
|
|
}
|
|
if w := StringWidth("\t\t", tabsize); w != 8 {
|
|
t.Error("StringWidth 4 Failed. Got", w)
|
|
}
|
|
if w := StringWidth("12\t2\t", tabsize); w != 8 {
|
|
t.Error("StringWidth 5 Failed. Got", w)
|
|
}
|
|
}
|
|
|
|
func TestWidthOfLargeRunes(t *testing.T) {
|
|
tabsize := 4
|
|
if w := WidthOfLargeRunes("1\t2", tabsize); w != 2 {
|
|
t.Error("WidthOfLargeRunes 1 Failed. Got", w)
|
|
}
|
|
if w := WidthOfLargeRunes("\t", tabsize); w != 3 {
|
|
t.Error("WidthOfLargeRunes 2 Failed. Got", w)
|
|
}
|
|
if w := WidthOfLargeRunes("1\t", tabsize); w != 2 {
|
|
t.Error("WidthOfLargeRunes 3 Failed. Got", w)
|
|
}
|
|
if w := WidthOfLargeRunes("\t\t", tabsize); w != 6 {
|
|
t.Error("WidthOfLargeRunes 4 Failed. Got", w)
|
|
}
|
|
if w := WidthOfLargeRunes("12\t2\t", tabsize); w != 3 {
|
|
t.Error("WidthOfLargeRunes 5 Failed. Got", w)
|
|
}
|
|
}
|