===============================

QxCalculator for Windows Test Suite

Created by: Greger Haga (ggh@multi.fi)
https://www.multi.fi/ghaga/
DATE:Fri Jun 21 21:52:46 2024

The documentation created in development of this particular application can be found here:QxCalculator for Windows Test Suite Docs

Please find below the testsuite used for creating the QxCalculator for Windows application. There is about 100 tests so far, more coming as we go. I include this here to display how I work, using try and fail, and testing before implementation. This is the best way I come to write software. Implementation after tests. If you don't test, how do you know what you do?

Please pay attention to tests at lines:568, 571, 577, and 580. They all fail. This means I need to fix the tests to pass before proceeding with the application development. Having focus on the small bits makes it easy to fix and proceed and be content that the application code is "sane". If a problem occures during the development process, then I can roll back and check where the error in fact is. Having the testsuite also helps in this matter, using "divide and conquer".

Further, when implementing new features in a program it is quite common to "break existing code". Having a testsuite which evolves as you go makes it easy to spot and correct erroneus behaviour of the application in development. Simply, it makes you sleep better!

-------------------------------
#  0 : C:\qxcg_gui\testsuite\templatetestcase.cpp:   39                              testing equality of two std::strings[FAIL][Should FAIL][SUCCESS]
#  1 : C:\qxcg_gui\testsuite\templatetestcase.cpp:   44                          testing equality, different std::strings[FAIL][Should FAIL][SUCCESS]
#  2 : C:\qxcg_gui\testsuite\templatetestcase.cpp:   53                              testing equality of two long doubles[Pass][Should pass][SUCCESS]
#  3 : C:\qxcg_gui\testsuite\templatetestcase.cpp:   70                                          testing that file exists[Pass][Should pass][SUCCESS]
#  4 : C:\qxcg_gui\testsuite\templatetestcase.cpp:   80                                              check file exists(3)[Pass][Should pass][SUCCESS]
#  5 : C:\qxcg_gui\testsuite\templatetestcase.cpp:   88                                       testing files(via pointers)[Pass][Should pass][SUCCESS]
#  6 : C:\qxcg_gui\testsuite\templatetestcase.cpp:   92                                         test equality of pointers[FAIL][Should FAIL][SUCCESS]
#  7 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  101                                           file exists(QxCalcFile)[Pass][Should pass][SUCCESS]
#  8 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  116                           testing equality of calcdocs'(pointers)[FAIL][Should FAIL][SUCCESS]
#  9 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  123                                      testing equality of calcdocs[Pass][Should pass][SUCCESS]
# 10 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  150                                                    checking flags[Pass][Should pass][SUCCESS]
# 11 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  153                                                 checking flags(2)[Pass][Should pass][SUCCESS]
# 12 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  161                                                 checking flags(2)[Pass][Should pass][SUCCESS]
# 13 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  170                                              checking files exist[Pass][Should pass][SUCCESS]
# 14 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  177                                                 check file exists[Pass][Should pass][SUCCESS]
# 15 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  184                                              check file exists(2)[Pass][Should pass][SUCCESS]
# 16 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  191                                                testing calc files[Pass][Should pass][SUCCESS]
# 17 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  197                                         calc file with scriptname[Pass][Should pass][SUCCESS]
# 18 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  201                                           check scriptnames equal[Pass][Should pass][SUCCESS]
# 19 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  207                                                   calc file flags[Pass][Should pass][SUCCESS]
# 20 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  211                                                  testing XML flag[Pass][Should pass][SUCCESS]
# 21 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  215                                                 testing HTML flag[Pass][Should pass][SUCCESS]
# 22 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  219                                                testing ASCII flag[Pass][Should pass][SUCCESS]
# 23 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  223                                            testing no header flag[Pass][Should pass][SUCCESS]
# 24 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  227                                           testing filename member[Pass][Should pass][SUCCESS]
# 25 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  232                                           testing filename member[FAIL][Should FAIL][SUCCESS]
# 26 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  237                                          checking file inequality[Pass][Should pass][SUCCESS]
# 27 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  241                                       checking file inequality(1)[FAIL][Should FAIL][SUCCESS]
# 28 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  245                                              checking files exist[FAIL][Should FAIL][SUCCESS]
# 29 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  257                                  checking calc files do not exist[Pass][Should pass][SUCCESS]
# 30 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  263                               checking calc file exists:qxcf.qxcf[FAIL][Should FAIL][SUCCESS]
# 31 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  267                                            checking filesize == 9[FAIL][Should FAIL][SUCCESS]
# 32 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  273                                               read data from file[FAIL][Should FAIL][SUCCESS]
# 33 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  283                                                check data members[Pass][Should pass][SUCCESS]
# 34 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  287                               after write, check that file exists[Pass][Should pass][SUCCESS]
# 35 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  291                             after write, check filesizes the same[Pass][Should pass][SUCCESS]
# 36 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  295                                            check filesizes  ==  0[Pass][Should pass][SUCCESS]
# 37 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  303                                   check that the data is the same[Pass][Should pass][SUCCESS]
# 38 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  327                           check if script saved:myscript.calc.csv[Pass][Should pass][SUCCESS]
# 39 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  340                              input and output of base64 the same![Pass][Should pass][SUCCESS]
# 40 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  390                                    open csv file and read from it[Pass][Should pass][SUCCESS]
# 41 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  398                          open csvfile.csv for reading into csvlib[Pass][Should pass][SUCCESS]
# 42 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  405                                                     read the file[Pass][Should pass][SUCCESS]
# 43 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  410                                            got first cell:cell 00[Pass][Should pass][SUCCESS]
# 44 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  415                                            got second cell:cell 0[Pass][Should pass][SUCCESS]
# 45 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  421                                                    got second row[Pass][Should pass][SUCCESS]
# 46 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  426                                            got first cell:cell 00[Pass][Should pass][SUCCESS]
# 47 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  431                                            got second cell:cell 0[Pass][Should pass][SUCCESS]
# 48 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  456                          open csvfile.csv for reading into csvlib[Pass][Should pass][SUCCESS]
# 49 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  464                                                    read first row[Pass][Should pass][SUCCESS]
# 50 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  469                                            got first cell:cell 00[Pass][Should pass][SUCCESS]
# 51 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  474                                            got second cell:cell 0[Pass][Should pass][SUCCESS]
# 52 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  482                                                    read first row[Pass][Should pass][SUCCESS]
# 53 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  488                                                    got second row[Pass][Should pass][SUCCESS]
# 54 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  493                                                     got third row[Pass][Should pass][SUCCESS]
# 55 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  501                                          got first cell first row[Pass][Should pass][SUCCESS]
# 56 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  506                                         got second cell first row[Pass][Should pass][SUCCESS]
# 57 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  515                                         got first cell second row[Pass][Should pass][SUCCESS]
# 58 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  520                                        got second cell second row[Pass][Should pass][SUCCESS]
# 59 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  525                                          got first cell third row[Pass][Should pass][SUCCESS]
# 60 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  530                                         got second cell third row[Pass][Should pass][SUCCESS]
# 61 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  535                                          got third cell third row[Pass][Should pass][SUCCESS]
# 62 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  568                                              0-1 cell 01<=>cell 0 [FAIL][Should Pass][FAILURE]
# 63 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  571                                            1-0 cell 10<=>"cell 10 [FAIL][Should Pass][FAILURE]
# 64 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  574                                             1-1 cell 11<=>cell 11[Pass][Should pass][SUCCESS]
# 65 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  577                                            2-0 cell 20<=>"cell 20 [FAIL][Should Pass][FAILURE]
# 66 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  580                                            2-1 cell 21<=>cell 21" [FAIL][Should Pass][FAILURE]
# 67 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  583                                             2-2 cell 22<=>cell 22[Pass][Should pass][SUCCESS]
# 68 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  595                                               checking file saved[Pass][Should pass][SUCCESS]
# 69 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  613                          open csvfile.csv for reading into csvlib[Pass][Should pass][SUCCESS]
# 70 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  620                                               Table has five rows[Pass][Should pass][SUCCESS]
# 71 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  624                                               opened csvfile.csv [Pass][Should pass][SUCCESS]
# 72 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  630     "cell 21","cell 22","cell 23"<=>"cell 21","cell 22","cell 23"[Pass][Should pass][SUCCESS]
# 73 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  637     "cell 21","cell 22","cell 23"<=>"cell 21","cell 22","cell 23"[Pass][Should pass][SUCCESS]
# 74 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  656                     second cell in third row => cell 32<=>cell 32[Pass][Should pass][SUCCESS]
# 75 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  663                      First cell in third row => cell 31<=>cell 31[Pass][Should pass][SUCCESS]
# 76 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  670                      First cell in first row => cell 11<=>cell 11[Pass][Should pass][SUCCESS]
# 77 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  677                     First cell in second row => cell 21<=>cell 21[Pass][Should pass][SUCCESS]
# 78 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  683                    second cell in second row => cell 22<=>cell 22[Pass][Should pass][SUCCESS]
# 79 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  689                     second cell in first row => cell 12<=>cell 12[Pass][Should pass][SUCCESS]
# 80 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  696                      third cell in third row => cell 33<=>cell 33[Pass][Should pass][SUCCESS]
# 81 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  702                     second cell in third row => cell 32<=>cell 32[Pass][Should pass][SUCCESS]
# 82 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  710                       last cell in first row => cell 12<=>cell 12[Pass][Should pass][SUCCESS]
# 83 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  716                      last cell in second row => cell 22<=>cell 22[Pass][Should pass][SUCCESS]
# 84 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  733                      last cell in fourth row => cell 44<=>cell 44[Pass][Should pass][SUCCESS]
# 85 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  740                      first cell in first row => cell 11<=>cell 11[Pass][Should pass][SUCCESS]
# 86 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  800                          checking document file name is the same [Pass][Should pass][SUCCESS]
# 87 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  810                                        check first rows are flags[Pass][Should pass][SUCCESS]
# 88 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  819                            Check filename correct=>mydocfile.qxcd[Pass][Should pass][SUCCESS]
# 89 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  825              document name => no document name<=>no document name[Pass][Should pass][SUCCESS]
# 90 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  832              document name => no document name<=>no document name[Pass][Should pass][SUCCESS]
# 91 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  845                            document file exists=> mycalcfile.qxcd[Pass][Should pass][SUCCESS]
# 92 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  858                           filenames !the same:f1.qxcd <=> f2.qxcd[FAIL][Should FAIL][SUCCESS]
# 93 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  877                           document names the same:Docume<=>Docume[Pass][Should pass][SUCCESS]
# 94 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  884                                                   Scripts:1 <=> 1[Pass][Should pass][SUCCESS]
# 95 : C:\qxcg_gui\testsuite\templatetestcase.cpp:  899                     examples/sample0.calc<=>examples/sample0.calc[Pass][Should pass][SUCCESS]

===============================