int main() { AndGate2 ag(true, false); AndGate2 ag2(false); AndGate2 ag3(); //not working for some misterious reason AndGate2 ag4(true,false); AndGate2 ag5(false,true); AndGate2 ag6(true); std::cout << ag.toString() << std::endl; std::cout <<"Output: " << std::boolalpha << ag.getOutput() << std::endl; std::cout <<"Comparing with 'ag4'(" << ag4.toString() << "). " << "Result: " << std::boolalpha << (ag==ag4) << std::endl; //(ag==ag4) needs the parentesis in order to compile std::cout << "==============================================================" << std::endl; std::cout << ag5.toString() << std::endl; std::cout <<"Output: " << std::boolalpha << ag5.getOutput() << std::endl; std::cout <<"Comparing with 'ag2'(" << ag2.toString() << "). " << "Result: " << std::boolalpha << (ag5==ag2) << std::endl; std::cout << "==============================================================" << std::endl; std::cout << ag6.toString() << std::endl; std::cout <<"Output: " << std::boolalpha << ag6.getOutput() << std::endl; std::cout <<"Comparing with 'ag5'(" << ag5.toString() << "). " << "Result: " << std::boolalpha << (ag6==ag5) << std::endl; }
int main() { lcs::Bus<1> a, b, a_, b_, p1, p2, s; lcs::Not<> ng1(a_, a), ng2(b_, b); lcs::And<2> ag1(p1, (a,b_)), ag2(p2, (a_,b)); lcs::Or<2> og(s, (p1,p2)); lcs::ChangeMonitor<2> inputMonitor((a,b), "Input", lcs::DUMP_ON); lcs::ChangeMonitor<1> outputMonitor(s, "Output", lcs::DUMP_ON); lcs::Tester<2> tester((a,b)); lcs::Simulation::setStopTime(1000); lcs::Simulation::start(); return 0; }
void run(int argc, char *argv[]) { int i, j; int array[16]; switch (testID) { case 0: if (processID == 0) { restart(); childWait(); for (i=0; i<1024; i++); ag2(-1,1); agDone(); } else { ag2(-1,2); parentSignal(); exit(0); } break; case 1: if (processID == 0) { for (i=0; i<16; i++) { array[i] = restart(); childWait(); } for (i=0; i<16; i++) for (j=0; j<16; j++) assert(i==j || array[i]!=array[j]); agDone(); } else { parentSignal(); exit(0); } break; case 2: if (processID == 0) { restart(); restart(); childWait(); exit(0); } else if (processID == 1) { parentSignal(); for (i=0; i<1024; i++); parentSignal(); exit(0); } else { childWait(); for (i=0; i<1024; i++); agDone(); } break; case 3: if (processID == 0) { i = restart(); assert(join(i, &j) == 1); assert(j == agLoad(valRandom)); agDone(); } else { exit(agLoad(valRandom)); } break; case 4: assert(exec("abcdefghijklmnopqrstuvwxyz", 0, null) == -1); agDone(); break; case 5: switch (processID) { case 0: restart(); childWait(); assert(join(agLoad(valChildProcessID), &j) == 1); assert(j == 0); agDone(); break; case 1: restart(); agStore(valChildProcessID, restart()); parentSignal(); break; case 2: exit(0); break; case 3: exit(agLoad(valRandom)); break; } break; case 6: if (processID == 0) { array[0] = (int) "this"; array[1] = (int) "is-dumb"; assert(exec(shellProgramName, 2, (char**) array) != -1); exit(0); } else { assert(argc == 2 && strcmp(argv[0], "this")==0 && strcmp(argv[1], "is-dumb")==0); agDone(); } break; case 7: for (i=0; i<8; i++) array[i] = (int) big; assert(exec(shellProgramName, 8, (char**) array) == -1); break; case 11: /* make lots of child processes */ if (processID == 0) { for (i=0; i<20; i++) { restart(); waitChild(); } agDone(); } else { signalParent(); exit(0); } break; } agFail(); }