Nested for loop issue

Sumit Adhikari sumit.adhikari at gmail.com
Sun Oct 27 02:05:05 PDT 2013


Dear All,

Greetings!

I has been an hour I starting making my hands dirty with D. I 
wrote following program:

import std.string;
import std.stdio;

ushort adder(ushort a, ushort b) {
    return (cast(ushort)(a + b)) ;
}

unittest {

    bool testStimEq(ushort a, ushort b, ushort result){

       try {
          writefln(" STIM :: Testing for  %d  and  %d", a,b);
          assert(adder(a,b) == result);
          writefln(" STAT :: Test for  %d  and  %d passed", a,b);
          return (false) ;
       } catch (core.exception.AssertError) {
          writefln(" STAT :: Test for  %d  and  %d failed", a,b);
          return(true) ;
       }

    }

    bool testStimnEq(ushort a, ushort b, ushort result){

       try {
          writefln(" STIM :: Testing for  %d  and  %d", a,b);
          assert(adder(a,b) != result);
          writefln(" STAT :: Test for  %d  and  %d passed", a,b);
          return (false) ;
       } catch (core.exception.AssertError) {
          writefln(" STAT :: Test for  %d  and  %d failed", a,b);
          return(true) ;
       }

    }

    writeln(" MESG :: Starting unit testing");

    int status = 0 ;

    //status += testStimEq(1,1,2);
    //status += testStimnEq(1,10,3);

    for (ushort i = 0 ; i < 65536 ; ++i){ // Holy King-Kong!

       for (ushort j = 0 ; j < 65536 ; ++j){

          status += testStimEq(i,j,cast(ushort)(i+j));

       }
    }

    if(status == 0) writeln(" MESG :: All unit tests passed");
    else            writeln(" ERRN :: Unit test failed");

}

void main()
    {}

I found that inner for loop is behaving correctly, but i is not 
changing.
What is that I am doing ? OR is it gcd ?

Regards, Sumit



More information about the Digitalmars-d mailing list