First things first.
I just found one case that is not tested and it is NULL pointers
passed to schedule* functions.
Just add this case somewhere in the end of test.
Second thing.
Everyone interested in getting files, just send me email and I will
send you files.
There is no option of attaching files to messages in Google Groups, so
if someone wants me to put this file somewhere online, just email me
address of site where I can put them.
Last thing. Long lines. Program code still can be copied and pasted
into file and it will work.

P.S. To Firasm101: I will send you files shortly.

Regards,
Dmitry Zbarski.

On Jan 4, 5:54 pm, Dmitry <[email protected]> wrote:
> Hello everyone.
>
> I've written my own test for matam homework 2. It's a much more
> extensive then the default ones provided by technion. I ran and double
> checked my output, but it is recommended to recheck your output in
> case something is different.
> To run the test, compile as explained in homework 2, but instead of
> copying main.c create real_test.c.
> Following are real_test.c, test.out (reference output) and test.err
> (reference error output).
>
> real_test.c:
> #include <stdio.h>
> #include <stdlib.h>
> #include <assert.h>
> #include "schedule.h"
> #include "mtm_ex2.h"
>
> #define SUCCESS 0
> #define ERROR_OUT_OF_MEMORY -1
>
> #define ERROR_STREAM stderr
>
> static int handleError(ScheduleResult result) {
>         switch (result) {
>         case SCHEDULE_OUT_OF_MEMORY:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_OUT_OF_MEMORY);
>                 return ERROR_OUT_OF_MEMORY;
>         case SCHEDULE_NULL_ARG:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_NULL_ARG);
>                 break;
>         case SCHEDULE_INVALID_LINE_TYPE:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_INVALID_LINE_TYPE);
>                 break;
>         case SCHEDULE_INVALID_LINE_NUMBER:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_INVALID_LINE_NUMBER);
>                 break;
>         case SCHEDULE_INVALID_PRICE:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_INVALID_PRICE);
>                 break;
>         case SCHEDULE_INVALID_TRAIN_TYPE:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_INVALID_TRAIN_TYPE);
>                 break;
>         case SCHEDULE_LINE_ALREADY_EXISTS:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_LINE_ALREADY_EXIST);
>                 break;
>         case SCHEDULE_LINE_DOESNT_EXIST:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_LINE_DOESNT_EXIST);
>                 break;
>         case SCHEDULE_STATION_ALREADY_EXIST:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_STATION_ALREADY_EXIST);
>                 break;
>         case SCHEDULE_STATION_DOESNT_EXIST:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_STATION_DOESNT_EXIST);
>                 break;
>         case SCHEDULE_STATION_IS_USED:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_STATION_IS_USED);
>                 break;
>         case SCHEDULE_INVALID_TIME:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_INVALID_TIME);
>                 break;
>         case SCHEDULE_INVALID_STATION_INDEX:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_INVALID_STATION_INDEX);
>                 break;
>         case SCHEDULE_NO_LINES:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_NO_LINES);
>                 break;
>         case SCHEDULE_NO_STATIONS:
>                 mtmPrintErrorMessage(ERROR_STREAM,MTM_NO_STATIONS);
>                 break;
>         default:
>                 assert(result == SCHEDULE_SUCCESS);
>                 break;
>         }
>         return SUCCESS;}
>
> //
> =============================================================================
> int test() {
>         Schedule schedule = scheduleCreate();
>         if(schedule == NULL)
>             return ERROR_OUT_OF_MEMORY;
>
>         printf("Check some reports with empty schedule, should output errors
> \n");
>         if (handleError(scheduleReportRegisteredStations(schedule)))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleReportLines(schedule, MTM_LINE_ALL)))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleReportLines(schedule, MTM_LINE_BUS)))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleReportLines(schedule, MTM_LINE_TRAIN)))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>
>         printf("Register some stations\n");
>         if (handleError(scheduleRegisterStation(schedule, "Station 1.0")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 1.1")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 1.2")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 1.3")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 1.4")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 11.0")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 11.1")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 11.2")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 11.3")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 11.4")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 2.0")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 2.1")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 2.2")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 2.3")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 3.0")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 3.1")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 3.2")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 3.3")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 3.4")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 3.5")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 0.0")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>
>         printf("Here should be 3 errors about station already exists\n");
>         if (handleError(scheduleRegisterStation(schedule, "Station 1.0")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 2.3")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleRegisterStation(schedule, "Station 0.0")))
> {scheduleDestroy(schedule); return ERROR_OUT_OF_MEMORY;}
>
>         printf("Add lines\n");
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 901,
> "Egged",         33))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 902,
> "Egged",         34))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 101,
> "Metropolin",    34))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 555,
> "Metropolin",    30))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 9,
> "A",             45))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 89,
> "e",             54))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 75,
> "z",             56))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1901,
> "direct",     37))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1902,
> "direct",     34))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1101,
> "intercity",  34))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1555,
> "direct",     30))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1009,
> "suburban", 45))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1089,
> "suburban",  54))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1075,
> "intercity", 36))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>
>         printf("Add illegal lines, check errors\n");
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_ALL, 1,
> "Egged",      10))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 0,
> "Egged",      10))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 10000,
> "Egged",      10))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 0,
> "direct",     10))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 10000,
> "direct",     10))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 200,
> "Egged",      0)))  {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1200,
> "direct",     0)))  {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 200,
> "Egged",     -1)))  {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1200,
> "direct",    -1)))  {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_TRAIN, 1200,
> "egged",      1)))  {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if (handleError(scheduleAddLine(schedule, MTM_LINE_BUS, 901,
> "E",          33))) {scheduleDestroy(schedule); return
> ERROR_OUT_OF_MEMORY;}
>         if
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Technion References" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/reference-technion?hl=en
-~----------~----~----~----~------~----~------~--~---

לענות