Przedstawiam wam test! Twój test to test. Test polega na przetestowaniu testowanego za pomocą testów, które daje tester, w mniejszej ilości kodu testowego . W szczególności podasz test wielokrotnego wyboru, który otrzymałeś jako wkład.
W tym wyzwaniu musisz wprowadzić następujące dane wejściowe:
1. Our site is called Programming Puzzles & Code ________.
A: Debugging
*B: Golf
C: Hockey
D: Programming
2. What is the *most* popular tag on our site?
A: [debug]
B: [program]
*C: [code-golf]
D: [number]
E: [c++]
3. We are part of the ________ Exchange network.
*A: Stack
B: Code
C: Programmer
D: Hockey
4. Is this the first question?
A: Yes
*B: No
5. Is this the last question?
*A: Yes
B: No
A oto przykład przeprowadzanego testu:
1. Our site is called Programming Puzzles & Code ________.
A: Debugging
B: Golf
C: Hockey
D: Programming
answer: B
correct!
2. What is the *most* popular tag on our site?
A: [debug]
B: [program]
C: [code-golf]
D: [number]
E: [c++]
answer: C
correct!
3. We are part of the ________ Exchange network.
A: Stack
B: Code
C: Programmer
D: Hockey
answer: B
incorrect! the answer was A
4. Is this the first question?
A: Yes
B: No
answer: B
correct!
5. Is this the last question?
A: Yes
B: No
answer: B
incorrect! the answer was A
overview:
3 correct, 2 incorrect (60%)
3. We are part of the ________ Exchange network.
you chose B: Code
the answer was A: Stack
5. Is this the last question?
you chose B: No
the answer was A: Yes
Specyfikacja formalna:
- Wejście
- Jeśli linia zaczyna się od liczby, po której następuje kropka i spacja, jest to pytanie o tej liczbie. Liczby zawsze zaczynają się od 1 i zwiększają o 1 każde pytanie.
- Jeśli linia zaczyna się od opcjonalnej gwiazdki, litery, dwukropka, a następnie spacji, jest to odpowiedź. Odpowiedzi będą również zawsze sekwencyjne. Na każde pytanie będzie tylko jedna poprawna odpowiedź.
- Linia nie rozpocznie się w żaden inny sposób niż wcześniej wspomniane sposoby.
- Dane wejściowe mogą być akceptowane w jakikolwiek sposób (odczyt z pliku, standardowe wejście itp.), Ale nie mogą być zapisane na stałe w programie.
- Wyjście (faza testowania)
- Najpierw wydrukuj kolejno każde pytanie. Wydrukuj pytanie i jego odpowiedzi zgodnie z otrzymanymi danymi wejściowymi, ale nie drukuj gwiazdki wskazującej prawidłowe odpowiedzi.
- Następnie wydrukuj nowy wiersz i
"answer: ". Poczekaj na dane wejściowe użytkownika. Dane wejściowe użytkownika zawsze będą odpowiadać na odpowiedź. - Jeśli poprawna odpowiedź (ta z gwiazdką) jest taka sama jak ta wprowadzona przez użytkownika, wyślij
"correct!". W przeciwnym razie wyjście"incorrect! the answer was " + correct_letter. - Oddziel każde pytanie pustą linią, a następnie powtarzaj poprzednie kroki wyjściowe, aż nie będzie już żadnych pytań.
- Wyjście (faza przeglądu)
- Wydrukuj,
"overview: "a następnie nowy wiersz. - Drukuj
"{number of correct answers} correct, {incorrect answers} incorrect ({percent correct, rounded to the nearest whole number}%)"(oczywiście zastępując wyrażenia w nawiasach klamrowych ich odpowiednimi wartościami). Następnie wydrukuj pustą linię dla odstępów. - Teraz, dla każdego błędnego pytania, wydrukuj pytanie (nie jego odpowiedzi), a następnie w nowym wierszu
"you chose " + answer_you_chosei w innym wierszu"the answer was " + correct_answer. Oddziel przegląd każdej błędnej odpowiedzi pustą linią.
- Wydrukuj,
- Aby ograniczyć oszustwo poprzez dosłowną interpretację rzeczy, gdy otrzyma się tutaj takie same dane wyjściowe i takie same dane wejściowe w fazie wykonywania testu, program musi wyświetlać dokładnie to samo, co dane wyjściowe próbki.
To jest golf golfowy ; najkrótszy kod wygrywa! (I dostaje A + (zielony znacznik wyboru)!)

\d\.,\w:i\*w środku pytań / odpowiedzi. (Na przykład obecnie*można go wyeliminowaćy/*//, podczas gdy poprawny sposób jest długi jaks/^\*//.)