//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. //Copyright (C) 2024 HTWKalender support@htwkalender.de //This program is free software: you can redistribute it and/or modify //it under the terms of the GNU Affero General Public License as published by //the Free Software Foundation, either version 3 of the License, or //(at your option) any later version. //This program is distributed in the hope that it will be useful, //but WITHOUT ANY WARRANTY; without even the implied warranty of //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //GNU Affero General Public License for more details. //You should have received a copy of the GNU Affero General Public License //along with this program. If not, see . package functions import ( "testing" ) func TestOnlyWhitespace(t *testing.T) { type args struct { word string } tests := []struct { name string args args want bool }{ {"empty string", args{""}, true}, {"whitespace", args{" "}, true}, {"whitespaces", args{" "}, true}, {"whitespaces and tabs", args{" \t"}, true}, {"whitespaces and tabs and newlines", args{" \t\n"}, true}, {"whitespaces and tabs and newlines and non-breaking spaces", args{" \t\n\u00A0"}, true}, {"non-whitespace", args{"a"}, false}, {"non-whitespaces", args{"abc"}, false}, {"non-whitespaces and tabs", args{"abc\t"}, false}, {"non-whitespaces and tabs and newlines", args{"abc\t\n"}, false}, {"non-whitespaces and tabs and newlines and non-breaking spaces", args{"abc\t\n\u00A0"}, false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := OnlyWhitespace(tt.args.word); got != tt.want { t.Errorf("OnlyWhitespace() = %v, want %v", got, tt.want) } }) } } func TestHashString(t *testing.T) { type args struct { s string } tests := []struct { name string args args want string }{ {"empty string", args{""}, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}, {"non-empty string", args{"abc"}, "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := HashString(tt.args.s); got != tt.want { t.Errorf("HashString() = %v, want %v", got, tt.want) } }) } } func TestIsSeparator(t *testing.T) { type args struct { separator []rune character rune } tests := []struct { name string args args want bool }{ {"empty separator", args{[]rune{}, 'a'}, false}, {"separator with one rune equal", args{[]rune{'a'}, 'a'}, true}, {"separator with one rune different", args{[]rune{'a'}, 'b'}, false}, {"separator with two runes equal", args{[]rune{'a', 'b'}, 'a'}, true}, {"separator with two runes equal second", args{[]rune{'a', 'b'}, 'b'}, true}, {"separator with two runes different", args{[]rune{'a', 'b'}, 'c'}, false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := IsSeparator(tt.args.separator)(tt.args.character); got != tt.want { t.Errorf("IsSeparator()() = %v, want %v", got, tt.want) } }) } }