Example #1
0
int main (int argc, char * const argv[]) {

    cout << "Hello, World!\n";

	if (argc < 2){
		usage();
		return 1;
	} else {
		for(int i = 1; i < argc; i++){						// check if all options are valid first
			if (argv[i][0] != '-')
			{
				cout << "'" << argv[i] << "' does not start with a dash: not a valid option. Exiting." << endl;
				usage();
				return 1;
			}
		}

		for(int i = 1; i < argc; i++){						//if all options are valid, proceed and evaluate
			
			if (argv[i][1] == 't') {
				cout << "---- testing option '" << argv[i][2] << "' ----" << endl;
				//---------------------------------------------------
				//run various tests
				//---------------------------------------------------
				string base = "";
				char *home = getenv( "HOME" );
				if (home){
					base = home;
					base += "/Desktop";
				}
				cout << "output directory '" << base << "'" << endl;
				Tester *t = new Tester(base);
				
				switch(argv[i][2]){
					case '1':
						t->testCrossCorrelator( 1 );					
						break;
					case '2':
						t->testArrayClasses();
						break;
					case '3':
						t->testFourierTrafo();
						break;
					case '4':
						{
							int io_mode = 0;	//general case: test all 2D formats
//							io_mode = 1; 	//2D EDF
//							io_mode = 2;	//2D HDF5
//							io_mode = 3;	//2D TIFF
//							io_mode = 4;	//2D ASCII
//							io_mode = 5;	//special case...
//							io_mode = 12; 	//test all 1D formats
							t->testIO(io_mode);
						}
						break;
					case '5':
						t->testDataTypes();					
						break;
					case '6':
						t->testArraySpeed();
						break;
					case '0':							// fall through to default
					default:
						t->testCrossCorrelator( 1 );
						t->testArrayClasses();
						t->testFourierTrafo();
						t->testIO();
						t->testDataTypes();
						break;
				}//end switch
				cout << "---- testing done ----" << endl;
				delete t;
				return 0;
			} else {
				cout << "-" << argv[i][1] << " is not a valid option." << endl;
				usage();
				return 2;
			}
		}//end for i
	}//end if
	
	
	return 0;
}