#### General ###### Can you confirm that the program reads a file that describes the processes, analyzes the entire file and proposes a valid solution? ###### Does the project contains a checker program? ###### Can you confirm that at least two configuration files were made by the project owner? ###### Can you confirm that those files are not a copy/paste of the ones provided? ###### Can you confirm that one of those files ends when the resources are consumed and the other one rotate indefinitely? ###### Can you confirm that those files obey the given file format? #### Functional ##### Try to run the stock exchange program with the files created by the owner of the project. ###### Can you confirm that those files are working with the program? ##### Try to run the stock exchange program with the files created by the owner of the project. ###### Does the program produces a log file? ###### Can that log file be used by the checker program? ##### Try to run the stock exchange program with the [simple](https://public.01-edu.org/subjects/stock-exchange-sim/examples/simple/simple) example, `"./stock examples/simple/simple 1"`. ```console student$ ./stock examples/simple/simple 1 Main Processes : 0:buy_materiel 10:build_product 40:delivery No more process doable at cycle 61 Stock : euro => 2 materiel => 0 product => 0 client_content => 1 student$ ``` ###### Does the display presents a result similar to the one above (optimizing time;client_content)? ##### Try to run the stock exchange program with the [build](https://public.01-edu.org/subjects/stock-exchange-sim/examples/build/build) example, `"./stock examples/build/build 10"`. ```console student$ ./stock examples/build/build 10 Main Processes : 0:do_shelf 0:do_shelf 0:do_shelf 0:do_doorknobs 0:do_doorknobs 0:do_background 20:do_cabinet No more process doable at cycle 51 Stock : board => 0 doorknobs => 0 background => 0 shelf => 0 cabinet => 1 student$ ``` ###### Does the display presents a result similar to the one above (optimizing time;cabinet)? ##### Try to run the stock exchange program with the [seller](https://public.01-edu.org/subjects/stock-exchange-sim/examples/seller/seller) example, `"./stock examples/seller/seller 10"`. ```console student$ ./stock examples/seller/seller 10 Main Processes : 0:optimize_profile 0:code 1:code 101:optimize_profile 101:sell_skills 101:sell_skills 101:code 102:code 111:code 211:optimize_profile 211:sell_skills 211:sell_skills 212:sell_skills 212:code 222:code 322:sell_skills No more process doable at cycle 333 Stock : repos => 0 transport => 0 skills => 1 fame => 0 euro => 601 student$ ``` ###### Does the display presents a result similar to the one above (optimizing euro)? ##### Try to run the stock exchange program with the [fertilizer](https://public.01-edu.org/subjects/stock-exchange-sim/examples/fertilizer/fertilizer) example, `"./stock examples/fertilizer/fertilizer 1"`.(fertilizer example is self-powered and rotates indefinitely) ```console student$ ./stock examples/fertilizer/fertilizer 1 Main Processes : ... 3973515:eat_apple 3973516:plant_apple 3973616:pick_apple 3973620:eat_apple 3973621:plant_apple 3973721:pick_apple 3973725:eat_apple No more process doable at cycle 3973727 Stock : apple => 0 you => 1 seed => 1 fertilizer => 1 happiness => 37846 apple_tree => 0 student$ ``` ###### Does the display presents a result similar to the one above, (optimizing happiness), choosing a reasonable shutdown condition and showing that the whole process went well for several times? ##### Run the same example with a different waiting time `"./stock examples/fertilizer/fertilizer 0.0003"`.(fertilizer example is self-powered and rotates indefinitely) ###### Does the display presents a result with a significantly shorter number of cycles comparing to the previous question output? ##### Try to run the stock exchange program with the [error1](https://public.01-edu.org/subjects/stock-exchange-sim/examples/errors/error1) example, `"./stock examples/errors/error1 1"`. ```console student$ ./stock examples/errors/error1 1 Error while parsing `:(euro:8):(material:1):10` Exiting... student$ ``` ###### Does the display presents a result similar to the one above, where it shows the error? ##### Try to run the stock exchange program with the [error2](https://public.01-edu.org/subjects/stock-exchange-sim/examples/errors/error2) example, `"./stock examples/errors/error2 1"`. ```console student$ ./stock examples/errors/error2 1 Missing processes Exiting... student$ ``` ###### Does the display presents a result similar to the one above, where it shows the error? ##### Try to run the stock exchange program with the [error3](https://public.01-edu.org/subjects/stock-exchange-sim/examples/errors/error3) example, `"./stock examples/errors/error3 1"`. ```console student$ ./stock examples/errors/error3 1 Error while parsing `optimize:(euro)` Exiting... student$ ``` ###### Does the display presents a result similar to the one above, where it shows the error? ##### Try to run the checker program with the [build](https://public.01-edu.org/subjects/stock-exchange-sim/examples/build/build) and the [build.log](https://public.01-edu.org/subjects/stock-exchange-sim/examples/build/build.log) example, `"./checker examples/build/build examples/build/build.log"`. ```console student$ ./checker examples/build/build examples/build/build.log Evaluating: 0:do_shelf Evaluating: 0:do_shelf Evaluating: 0:do_shelf Evaluating: 0:do_doorknobs Evaluating: 0:do_doorknobs Evaluating: 0:do_background Evaluating: 20:do_cabinet Trace completed, no error detected. student$ ``` ###### Does the display presents a result similar to the one above, where it shows the last cycle and the proof that the sequence is correct? ##### Try to run the checker program with the [seller](https://public.01-edu.org/subjects/stock-exchange-sim/examples/seller/seller) and the [seller.log](https://public.01-edu.org/subjects/stock-exchange-sim/examples/seller/seller.log)example, `"./checker examples/seller/seller examples/seller/seller.log"`. ```console student$ ./checker examples/seller/seller examples/seller/seller.log Evaluating: 0:optimize_profile Evaluating: 0:code Evaluating: 1:code Evaluating: 101:optimize_profile Evaluating: 101:sell_skills Evaluating: 101:sell_skills Evaluating: 101:code Evaluating: 102:code Evaluating: 111:code Evaluating: 211:optimize_profile Evaluating: 211:sell_skills Evaluating: 211:sell_skills Evaluating: 212:sell_skills Evaluating: 212:code Evaluating: 222:code Evaluating: 322:sell_skills Trace completed, no error detected. student$ ``` ###### Does the display presents a result similar to the one above, where it shows the last cycle and the proof that the sequence is correct? ##### Try to run the checker program with the [testchecker](https://public.01-edu.org/subjects/stock-exchange-sim/examples/checkererror/testchecker) and [testchecker.log](https://public.01-edu.org/subjects/stock-exchange-sim/examples/checkererror/testchecker.log) example, `"./checker examples/checkererror/testchecker examples/checkererror/testchecker.log"`. ```console student$ ./checker examples/checkererror/testchecker examples/checkererror/testchecker.log Evaluating: 0:do_shelf Evaluating: 0:do_shelf Evaluating: 0:do_doorknobs Evaluating: 0:do_doorknobs Evaluating: 0:do_background Evaluating: 20:do_cabinet Error detected at 20:do_cabinet stock insufficient Exiting... student$ ``` ###### Does the display presents a result similar to the one above, where it shows the last cycle and the proof that the sequence has errors? #### Bonus ###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc) ###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices/README.md)? ###### +Create your own file and run the stock exchange program with it. Does the program work like it should?