package main
-import "testing"
+import (
+ "testing"
+)
func TestNumOccurences(t *testing.T) {
var tests = []struct {
{"∆ƒ\tø ® \t\t", '\t', 3},
}
for _, test := range tests {
- if got := NumOccurences(test.inputStr, test.inputChar); got != test.want {
+ if got := NumOccurrences(test.inputStr, test.inputChar); got != test.want {
t.Errorf("NumOccurences(%s, %c) = %d", test.inputStr, test.inputChar, got)
}
}
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(")") == true {
t.Errorf("IsWordChar()) = 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)
+ }
+}