Вопрос пользователя:

Функция GetUTFLength(input []byte) (int, error) возвращает длину строки UTF8 и ошибку ErrInvalidUTF8 (в случае возникновения). Напишите тест, который бы проверял возвращаемые функцией значения. var ErrInvalidUTF8 = errors.New("invalid utf8") func GetUTFLength(input []byte) (int, error) {  if !utf8.Valid(input) {   return 0, ErrInvalidUTF8  }  return utf8.RuneCount(input), nil }

Ответ нейросети:

package main

import ( "reflect" "testing" )

func TestGetUTFLength(t *testing.T) { tests := []struct { input []byte expected int err error }{ {[]byte("Hello, 世界"), 9, nil}, {[]byte("Привет, мир!"), 13, nil}, {[]byte("Invalid UTF8 \xC3"), 0, ErrInvalidUTF8}, }

for _, test := range tests {
	result, err := GetUTFLength(test.input)
	if !reflect.DeepEqual(err, test.err) {
		t.Errorf("For input %v, expected error %v but got %v", test.input, test.err, err)
	}
	if result != test.expected {
		t.Errorf("For input %v, expected length %d but got %d", test.input, test.expected, result)
	}
}

}

Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.

Напишите нам, если в вопросе есть ваши персональные данные ([email protected])

Все вопросы

Последние вопросы: