Вопрос пользователя:
Ответ нейросети:
package main
import ( "io" "net/http" "net/http/httptest" "strconv" "strings" "testing" "time" )
func StartServer(timeout time.Duration) { http.HandleFunc("/", FibonacciHandler) srv := httptest.NewServer(http.DefaultServeMux) time.Sleep(timeout) srv.Close() }
func FibonacciHandler(w http.ResponseWriter, r *http.Request) { n := 9 fib := fibonacci(n) w.Write([]byte(strconv.Itoa(fib))) }
func fibonacci(n int) int { if n <= 1 { return n } return fibonacci(n-1) + fibonacci(n-2) }
func TestFib(t *testing.T) { go StartServer(time.Second) fibSlice := []int{0, 1, 1, 2, 3, 5, 8, 13, 21} for i, fib := range fibSlice { req, err := http.NewRequest("GET", "/", nil) if err != nil { t.Fatal(err) } w := httptest.NewRecorder() FibonacciHandler(w, req) res := w.Result() defer res.Body.Close() body, err := io.ReadAll(res.Body) if err != nil { t.Fatal("server works incorrect", err) } if strconv.Itoa(fib) != strings.TrimSpace(string(body)) { t.Fatal("incorrect answer", i, string(body), "expect", fib) } } }
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.