Raport testów maszynowych

Informacje o teście
Ostatnia modyfikacjaSat Oct 6 18:36:48 2018
AutorPiotr Duch
Emailpduch@iis.p.lodz.pl
W przypadku problemów z rozwiązaniem zadania i/lub zrozumieniem oglądanego właśnie raportu z testów maszynowych, proszę kontaktować się z jego autorem, pod podanym wyżej adresem email.
 
Informacje o odpowiedzi
PrzedmiotPP2: Podstawy Programowania 2
Temat1. Wskaźniki i tablice
Zadanie12. Histogram
Metainformacjesubject=16; topic=2001; task=2112; test=2112; reply=359666; user=462; hub=50408
Data przesłania odpowiedzi2019-08-22T14:46:22+02:00
Rozpoczęcie analizy2019-08-22 14:46:34.385348
Czas analizy11.362 sekund
Status
Błąd: TESTY: Niektóre wywołania Twoich funkcji zakończyły się NIEPOMYŚLNIE; Popraw swój kod.
Ostrzeżenie: Wykryto problemy podczas analizy statycznej programu
Przesłana odpowiedź wymaga poprawy!
 
Historia odpowiedzi
Podejście8
Poprzednie raporty
2019-08-22 14:39:52+02:00RAPORT
2019-08-22 14:37:48+02:00RAPORT
2019-08-22 14:14:52+02:00RAPORT
2019-08-21 22:21:39+02:00RAPORT
2019-08-21 14:24:52+02:00RAPORT
2019-08-21 14:24:01+02:00RAPORT
2019-08-21 14:22:39+02:00RAPORT

Dane wejściowe [Pokaż]

Napisz program, który pobierze tablicę liczb rzeczywistych z przedziału <0 - 11) od użytkownika (maksymalnie 100, w przypadku mniejszej liczby danych wartość -1 będzie oznaczała koniec wprowadzania danych) i zapisze je do tablicy. Dla pobranej tablicy wyznacz histogram liczb, zakładając 11 przedziałów: <0;1), <1;2), ... <10; 11).

Histogram wyświetl w postaci ciągu wartości znajdujących się w każdym z 11 przedziałów. Wyniki mają być wyświetlone w jednej linii, oddzielone spacjami.

W przypadku podania błędnych danych program powinien wyświetlić komunikat Incorrect input i zakończyć działanie z kodem błędu 1, w przypadku niepodania żadnej wartości program ma wyświetlić komunikat Not enough data available i zakończyć działanie z kodem błędu 3.


Przygotuj funkcje do pobierania danych od użytkownika, wyświetlania danych na konsoli oraz wyznaczania histogramu.

Prototyp funkcji wyznaczającej histogram ma wyglądać następująco:

int create_histogram(const float *vec, int size, int *out, int out_size);

Parametry:

Wartość zwrócona:

Przykładowa interakcja z programem -- sukces:

Podaj liczby: 4.812335 4.005256 2.990941 10.987188 10.223234 5.657190 8.759232 7.377624 4.812679 -1
0 0 1 0 3 1 0 1 1 0 2
Podaj liczby: -4.3 -15.85 -18.22 -15.36 -3.65 -6.94 -5.42 -11.21 -17.25 -1.00⏎
0 0 0 0 0 0 0 0 0 0 0 ⏎

Uwaga

Zawartość przesłanej odpowiedzi
1. main.c 710 bajtów Pobierz Pokaż Przesłany kod, zmodyfikowany pod testy
2. vector_utils.c 1,350 bajtów Pobierz Pokaż Przesłany kod, zmodyfikowany pod testy
3. vector_utils.h 249 bajtów Pobierz Pokaż Przesłany kod
4. unit_helper_v2.c 11,786 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
5. unit_helper_v2.h 3,974 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
6. unit_test_v2.c 55,794 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
7. tested_declarations.h 549 bajtów Pobierz Pokaż Wstrzyknięty kod testujący, prototypy wymaganych funkcji
8. rdebug.c 45,693 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
9. rdebug.h 6,417 bajtów Pobierz Pokaż Wstrzyknięty kod testujący, prototypy wymaganych funkcji
Pobierz plik ZIP ze wszystkimi powyższymi plikami: source.zip (29,801 bajtów).

Raport z przebiegu kompilacji [Pokaż]

Raport z przebiegu konsolidacji [Pokaż]

Raport analizy statycznej [Pokaż]

Wywołanie:

cppcheck --std=c11 --enable=all --xml-version=2 --error-exitcode=42 --includes-file=/usr/include --suppress=missingIncludeSystem --suppress=variableScope --suppress=unmatchedSuppression main.c vector_utils.c vector_utils.h

Wywołanie:

cppcheck-htmlreport --file=cppcheck_log.xml --title=abc --report-dir=cppcheck --source-dir=./ --source-encoding=utf-8

Wywołanie:

scan-build-3.9 -o . -stats -internal-stats --force-analyze-debug-code --keep-empty --status-bugs -o ./clang_tmp -enable-checker alpha.core.CastSize -enable-checker alpha.core.CastToStruct -enable-checker alpha.core.FixedAddr -enable-checker alpha.core.IdenticalExpr -enable-checker alpha.core.PointerArithm -enable-checker alpha.core.PointerSub -enable-checker alpha.core.SizeofPtr -enable-checker alpha.deadcode.UnreachableCode -enable-checker alpha.security.ArrayBound -enable-checker alpha.security.ArrayBoundV2 -enable-checker alpha.security.ReturnPtrRange -enable-checker alpha.unix.Chroot -enable-checker alpha.unix.SimpleStream -enable-checker alpha.unix.Stream -enable-checker alpha.unix.cstring.BufferOverlap -enable-checker alpha.unix.cstring.NotNullTerminated gcc -ggdb3 -O0 -Wall -Wextra -std=c11 -x c -c main.c vector_utils.c vector_utils.h

Cppcheck: Brak błędów/wskazówek; pobierz RAPORT

Clang: Znaleziono błędy/wskazówki; pobierz RAPORT

Test 1: Testy jednostkowe [Pokaż]

Opis: Analiza wyników funkcji w programie studenta

Wywołanie:

./main 1

Widok konsoli programu -- przebieg interakcji z użytkownikiem:


### Testy jednostkowe ###

TEST 1: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 2: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [6, 11, 9, 8, 7, 6, 13, 6, 13, 15, 6] Tablica po wywołaniu funkcji create_histogram: 0 11 9 8 7 6 13 6 13 15 6 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST2(void) z pliku unit_test_v2.c, w linii 133 TEST 3: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [8, 12, 15, 15, 11, 12, 12, 11, 15, 11, 16] Tablica po wywołaniu funkcji create_histogram: 0 12 15 15 11 12 12 11 15 11 16 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST3(void) z pliku unit_test_v2.c, w linii 190 TEST 4: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0] Tablica po wywołaniu funkcji create_histogram: 0 0 1 0 0 0 1 1 0 0 0 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST4(void) z pliku unit_test_v2.c, w linii 247 TEST 5: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [4, 3, 6, 7, 4, 5, 1, 4, 8, 4, 0] Tablica po wywołaniu funkcji create_histogram: 0 3 6 7 4 5 1 4 8 4 0 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST5(void) z pliku unit_test_v2.c, w linii 304 TEST 6: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [8, 4, 5, 5, 3, 6, 8, 6, 4, 2, 2, 6, 1, 6, 2, 6, 5, 7, 6, 1, 0] Tablica po wywołaniu funkcji create_histogram: 0 4 5 5 3 6 8 6 4 2 2 8 1 0 2 0 -1 0 1 0 -1 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST6(void) z pliku unit_test_v2.c, w linii 361 TEST 7: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [6, 7, 4, 13, 10, 11, 7, 11, 4, 9, 12, 11, 9, 8, 3, 6, 8, 7, 12, 9, 9, 10, 6, 11, 6, 5, 13, 14, 13, 15, 8, 10, 6, 9, 16, 12, 6, 5, 7, 8, 6, 7, 10, 6, 11, 12, 12, 17, 10, 13, 13, 10, 7, 8, 9, 6, 7, 7, 19, 12, 9, 6, 11, 7, 6, 6, 8, 10, 17, 5, 8, 14, 4, 6, 16, 10, 4, 6, 12, 9, 12, 8, 7, 5, 9, 7, 10, 11, 0] Tablica po wywołaniu funkcji create_histogram: 0 7 4 13 10 11 7 11 4 9 12 12 2 2 0 0 -1 -2 -2 0 0 2 -2 -2 1 -2 1 -1 0 -2 2 -1 -2 -2 -1 1 0 -2 1 -2 -1 0 0 -2 -1 0 0 -2 -1 2 1 1 0 2 -1 -2 0 2 1 0 1 -1 -2 0 -1 -2 -2 2 -2 2 -1 0 0 1 1 -1 1 -2 1 0 1 -1 -2 1 0 -2 -1 2 -2 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST7(void) z pliku unit_test_v2.c, w linii 418 TEST 8: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [5, 11, 9, 8, 12, 12, 11] Tablica po wywołaniu funkcji create_histogram: 0 11 9 8 12 12 11 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST8(void) z pliku unit_test_v2.c, w linii 475 TEST 9: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 10: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [7] Tablica po wywołaniu funkcji create_histogram: 0 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST10(void) z pliku unit_test_v2.c, w linii 589 TEST 11: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 12: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 13: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 14: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 15: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 16: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Wynik: SUKCES TEST 17: Sprawdzanie poprawności działania funkcji display ***TEST 1*** ***START*** ***END*** ***TEST 2*** ***START*** ***END*** ***TEST 3*** ***START*** 0 4 0 1 ***END*** ***TEST 4*** ***START*** 0 4 0 ***END*** Wynik: SUKCES TEST 18: Sprawdzanie poprawności działania funkcji read_vector_float
6 6 10 7 6 -3 -8 9 8 -6 0 Wynik: SUKCES TEST 19: Sprawdzanie poprawności działania funkcji read_vector_float 1 -10 0 -8 -1 -8 -9 -3 Wynik: SUKCES TEST 20: Sprawdzanie poprawności działania funkcji read_vector_float 0 Wynik: SUKCES TEST 21: Sprawdzanie poprawności działania funkcji read_vector_float -9 -3 7 4 2 10 -7 3 10 8 -2 -8 0 -5 6 -9 8 5 -9 -2 -9 -8 -3 6 5 5 3 -6 Wynik: SUKCES TEST 22: Sprawdzanie poprawności działania funkcji read_vector_float #####START##########END#####Wynik: SUKCES TEST 23: Sprawdzanie poprawności działania funkcji read_vector_float #####START##########END#####Wynik: SUKCES TEST 24: Sprawdzanie poprawności działania funkcji read_vector_float #####START##########END#####Wynik: SUKCES

### RLDebug :: Analiza wycieku zasobów ###

Wszystkie bloki pamięci zostały pomyślnie zwolnione - brak wycieków. Wszystkie pliki zostały zamknięte. Nie wykryto uszkodzenia sterty.

### Podsumowanie ###

Testy dostępne: 24 (AVAIL) Wykonane: 24 (DONE) Testy poprawne: 16 (PASSED) Testy niepoprawne: 8 (FAILED) Ostrzeżenia: 0 (WARNINGS) Wycieki zasobów: 0 (LEAKS)
status avail=24 done=24 failed=8 passed=16 warns=0 gid=1 leaks=0

Program zakończony; kod błędu=0 (Ok)

Test został przerwany; TESTY: Niektóre wywołania Twoich funkcji zakończyły się NIEPOMYŚLNIE; Popraw swój kod.

Dodatek: Informacje o środowisku uruchomieniowym [Pokaż]

 

Objaśnienia oraz informacje dodatkowe:

tekst Dane wpisywane przez człowieka, z klawiatury (stdin, standard input, standardowy strumień wejścia)
tekst Dane wyświetlane przez program, np. funkcją fprintf (stdout, standard output, standardowy strumień wyjścia)
tekst Dane wyświetlane przez program, np. funkcją printf (stderr, standard error, standardowy strumień błędów)
Wciśnięcie klawisza SPACE
Wciśnięcie klawisza ENTER; znak nowej linii
? Znak spoza przestrzeni ASCII; niedopuszczalny
System testów maszynowych (c) Tomasz Jaworski, 2017; IIS PŁ
Icons made by Dave Gandy from www.flaticon.com is licensed by CC 3.0 BY
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY