﻿Στο autolab τα τεστ με πρόθεμα a_ αναφέρονται στην πρώτη άσκηση και τα τεστ με πρόθεμα b_ 
στη δεύτερη.
==========================================================================================

~ ~ ~ ~ ΆΣΚΗΣΗ 1 ~ ~ ~ ~

Για κάθε τεστ σας δίνουμε δύο αρχεία:
    • Το αρχείο εισόδου έχει όνομα της μορφής a_inX_Ss_Qq.txt όπου 
        ◦ X ο αύξων αριθμός του τεστ
        ◦ s η τιμή που πρέπει να έχει η σταθερά NUM_STUDENTS για αυτό το τεστ
        ◦ q η τιμή που πρέπει να έχει η σταθερά NUM_QUESTIONS για αυτό το τεστ
    • Το αντίστοιχο αρχείο εξόδου έχει όνομα της μορφής a_outX.txt 

Για παράδειγμα, για να δοκιμάσετε το test1, το οποίο έχει αρχείο εισόδου με όνομα 
a_in1_S5_Q4.txt, θα πρέπει:

    a) Να αλλάξετε στο hw1.h τις τιμές των NUM_STUDENTS και NUM_QUESTIONS σε 5 και 4 αντίστοιχα
    b) Να κάνετε κανονικά compile το hw1a.c
    c) Να τρέξετε το hw1a με είσοδο από το αρχείο a_in1_S5_Q4.txt και να επιβεβαιώσετε ότι 
       η έξοδός σας είναι όμοια με αυτή του αρχείου a_out1.txt

-----------------------------------------------------------------------------------
Ακολουθεί σύντομη περιγραφή του τι ελέγχει κάθε τεστ: 
-----------------------------------------------------------------------------------

===================================================================================
ΤΕΣΤ #1 

Αρχείο εισόδου: a_in1_S5_Q4.txt
Αρχείο εξόδου: a_out1.txt

Χρησιμοποιήστε:

#define NUM_STUDENTS 5
#define NUM_QUESTIONS 4

Το τεστ έχει απαντήσεις στο εύρος A-C και μηδενικό πέναλτυ.

===================================================================================
ΤΕΣΤ #2 

Αρχείο εισόδου: a_in2_S5_Q3.txt
Αρχείο εξόδου: a_out2.txt

Χρησιμοποιήστε:

#define NUM_STUDENTS 5
#define NUM_QUESTIONS 3

Το τεστ έχει απαντήσεις στο εύρος A-C και πέναλτυ -0.25

===================================================================================
ΤΕΣΤ #3

Αρχείο εισόδου: a_in3_S2_Q2.txt
Αρχείο εξόδου: a_out3.txt

Χρησιμοποιήστε:

#define NUM_STUDENTS 2
#define NUM_QUESTIONS 2

Το τεστ έχει απαντήσεις στο εύρος A-C και μηδενικό πέναλτυ.
Έλεγχος λανθασμένης εισόδου:
- στην ερώτηση Enter number of choices
- στην ερώτηση Enter wrong answer penalty

===================================================================================
ΤΕΣΤ #4

Αρχείο εισόδου: a_in4_S10_Q5.txt
Αρχείο εξόδου: a_out4.txt

Χρησιμοποιήστε:

#define NUM_STUDENTS 10
#define NUM_QUESTIONS 5

Το τεστ έχει απαντήσεις στο εύρος Α-C και πέναλτυ -0.15
Έλεγχος λανθασμένης εισόδου στις επιλογές του μενού και στην εισαγωγή
των απαντήσεων.

===================================================================================
ΤΕΣΤ #5

Αρχείο εισόδου: a_in5_S10_Q4.txt
Αρχείο εξόδου: a_out5.txt

Χρησιμοποιήστε:

#define NUM_STUDENTS 10
#define NUM_QUESTIONS 4

Το τεστ έχει απαντήσεις στο εύρος A-E και πέναλτυ -0.25
Έλεγχος λανθασμένης εισόδου στις τιμές για τις επιλογές g, i.

===================================================================================
ΤΕΣΤ #6

Αρχείο εισόδου: a_in6_S50_Q20.txt
Αρχείο εξόδου: a_out6.txt

Χρησιμοποιήστε:

#define NUM_STUDENTS 50
#define NUM_QUESTIONS 20

Το τεστ έχει απαντήσεις στο εύρος A-Z και πέναλτυ -0.038
Τυχαίες απαντήσεις φοιτητών.

===================================================================================
ΤΕΣΤ #7

Αρχείο εισόδου: a_in7_S5000_Q40.txt
Αρχείο εξόδου: a_out7.txt

Χρησιμοποιήστε:

#define NUM_STUDENTS 5000
#define NUM_QUESTIONS 40

Τεστ με μεγάλο αριθμό φοιτητών. Εξετάζει τυχόν περιπτώσεις που δεν καλύπτονται
από τα άλλα τεστ. Τα δεδομένα έχουν παραχθεί τυχαία.

===================================================================================
===================================================================================

~ ~ ~ ~ ΆΣΚΗΣΗ 2 ~ ~ ~ ~

Για κάθε τεστ σας δίνουμε δύο αρχεία:
    • Το αρχείο εισόδου έχει όνομα της μορφής b_inX_Vv.txt όπου 
        ◦ X ο αύξων αριθμός του τεστ
        ◦ v η τιμή που πρέπει να έχει η σταθερά MAX_VOTERS για αυτό το τεστ
    • Το αντίστοιχο αρχείο εξόδου έχει όνομα της μορφής b_outX.txt

Για παράδειγμα, για να δοκιμάσετε το test1, το οποίο έχει αρχείο εισόδου με όνομα b_in1_V3.txt, 
θα πρέπει:
 
    a) Να αλλάξετε στο hw1.h την τιμή του MAX_VOTERS σε 3
    b) Να κάνετε κανονικά compile το hw1b.c
    c) Να τρέξετε το hw1b με είσοδο από το αρχείο b_in1_V3.txt και να επιβεβαιώσετε 
       ότι η έξοδός σας είναι όμοια με αυτή του αρχείου b_out1.txt

Έχετε υπόψη πως κάθε ένα από τα τεστ 1-4 του autolab για τη δεύτερη άσκηση αποτελείται από 
δύο "υποτέστ", το Α και το Β. Το Α είναι ακριβώς αυτό που σας δίνουμε. Το Β έχει όμοια είσοδο 
με μόνη διαφορά ότι το μέγεθος του MAX_VOTERS είναι μεγαλύτερο. 

Με άλλα λόγια, το Α εξετάζει ότι το πρόγραμμα λειτουργεί σωστά όταν το πλήθος ψηφοφόρων 
είναι ακριβώς ίσο με το MAX_VOTERS ενώ το Β εξετάζει ότι το πρόγραμμα λειτουργεί σωστά όταν 
το πλήθος ψηφοφόρων είναι μικρότερο από το MAX_VOTERS. Κατά τα άλλα, τα δεδομένα είναι 
ακριβώς ίδια. 

-----------------------------------------------------------------------------------
Ακολουθεί σύντομη περιγραφή του τι ελέγχει κάθε τεστ: 
-----------------------------------------------------------------------------------

===================================================================================
ΤΕΣΤ #1

Αρχείο εισόδου: b_in1_V3.txt
Αρχείο εξόδου: b_out1.txt
Χρησιμοποιήστε: 

#define MAX_VOTERS 3

Στο subtestA δίνονται τόσοι ψηφοφόροι όσο το μέγεθος του πίνακα, ένας από κάθε φύλο, 
σε διαφορετικές ηλικιακές ομάδες, όπου όλοι ψηφίζουν το ίδιο άτομο. Όλες οι τιμές είναι έγκυρες.

Το subtestB έχει παρόμοια είσοδο με διαφορά ότι το MAX_VOTERS είναι 100. Εξετάζει την περίπτωση 
να δοθούν λιγότεροι ψηφοφόροι από όσο είναι το μέγεθος του πίνακα (με όλα τα υπόλοιπα δεδομένα ίδια). 

===================================================================================
ΤΕΣΤ #2 

Αρχείο εισόδου: b_in2_V11.txt
Αρχείο εξόδου: b_out2.txt

Χρησιμοποιήστε:

#define MAX_VOTERS 11

Τουλάχιστον δύο άτομα από κάθε φύλο, καλύπτονται όλες οι ηλικιακές ομάδες, όλοι έχουν ψηφίσει 
κάποιον, όλοι οι υποψήφιοι έχουν τουλάχιστον μία ψήφο, δεν υπάρχουν ισοψηφίες στους νικητές
των επιμέρους κατηγοριών. Όλες οι τιμές είναι έγκυρες.

===================================================================================
ΤΕΣΤ #3 

Αρχείο εισόδου: b_in3_V7.txt
Αρχείο εξόδου: b_out3.txt

Χρησιμοποιήστε:

#define MAX_VOTERS 7

Τουλάχιστον ένα άτομο από κάθε φύλο, δεν καλύπτονται όλες οι ηλικιακές ομάδες, δεν έχουν 
ψηφίσει όλοι κάποιον, δεν έχουν όλοι οι υποψήφιοι ψήφο, δεν υπάρχουν ισοψηφίες στους νικητές
των επιμέρους κατηγοριών. Όλες οι τιμές είναι έγκυρες.

===================================================================================
ΤΕΣΤ #4 

Αρχείο εισόδου: b_in4_V14.txt
Αρχείο εξόδου: b_out4.txt

Χρησιμοποιήστε:

#define MAX_VOTERS 14

Παρεμφερές με το 3, αλλά υπάρχουν περιπτώσεις ισοψηφίας.

===================================================================================
ΤΕΣΤ #5 

Αρχείο εισόδου: b_in5_V8.txt
Αρχείο εξόδου: b_out5.txt

Χρησιμοποιήστε:

#define MAX_VOTERS 8

Εξετάζει περιπτώσεις λανθασμένης εισόδου. Το τεστ του autolab περιλαμβάνει παρεμφερή υποτέστ 
για να μπορεί να βαθμολογήσει κάποιες μερικώς σωστές απαντήσεις χωρίς να μηδενίζεται όλο.

===================================================================================
ΤΕΣΤ #6

Αρχείο εισόδου: b_in6_V5000.txt
Αρχείο εξόδου: b_out6.txt

Χρησιμοποιήστε:

#define MAX_VOTERS 5000

Εξετάζει τυχόν περιπτώσεις που δεν καλύπτονται από τα άλλα τεστ. Το αρχείο με τα στοιχεία
των ψηφοφόρων έχει παραχθεί τυχαία.
