LCOV - code coverage report
Current view: top level - source/tests - TestMatrix.h (source / functions) Hit Total Coverage
Test: LibForBES Unit Tests Lines: 102 102 100.0 %
Date: 2016-04-18 Functions: 6 6 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * File:   TestMatrix.h
       3             :  * Author: Pantelis Sopasakis
       4             :  *
       5             :  * Created on Sep 14, 2015, 3:34:41 PM
       6             :  * 
       7             :  * ForBES is free software: you can redistribute it and/or modify
       8             :  * it under the terms of the GNU Lesser General Public License as published by
       9             :  * the Free Software Foundation, either version 3 of the License, or
      10             :  * (at your option) any later version.
      11             :  *  
      12             :  * ForBES is distributed in the hope that it will be useful,
      13             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      14             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
      15             :  * GNU Lesser General Public License for more details.
      16             :  * 
      17             :  * You should have received a copy of the GNU Lesser General Public License
      18             :  * along with ForBES. If not, see <http://www.gnu.org/licenses/>.
      19             :  */
      20             : 
      21             : #ifndef TESTMATRIX_H
      22             : #define TESTMATRIX_H
      23             : 
      24             : #include <cppunit/extensions/HelperMacros.h>
      25             : 
      26             : #define FORBES_TEST_UTILS
      27             : #include "ForBES.h"
      28             : 
      29             : #include <cstdlib>
      30             : #include <stdlib.h>
      31             : #include <cmath>
      32             : #include <time.h>
      33             : 
      34             : class TestMatrix : public CPPUNIT_NS::TestFixture {
      35           2 :     CPPUNIT_TEST_SUITE(TestMatrix);
      36             : 
      37             :     
      38             :     
      39           1 :     CPPUNIT_TEST(testGetSet);
      40           1 :     CPPUNIT_TEST(testGetSetTranspose);
      41           1 :     CPPUNIT_TEST(testQuadratic);
      42           1 :     CPPUNIT_TEST(testQuadratic2);
      43           1 :     CPPUNIT_TEST(testAssignment);
      44           1 :     CPPUNIT_TEST(testQuadratic3);
      45           1 :     CPPUNIT_TEST(testAdditionBad);
      46           1 :     CPPUNIT_TEST(testFBMatrix);
      47           1 :     CPPUNIT_TEST(testMakeRandomFBMatrix);
      48           1 :     CPPUNIT_TEST(testGetData);
      49           1 :     CPPUNIT_TEST(testGetNcols);
      50           1 :     CPPUNIT_TEST(testGetNrows);
      51           1 :     CPPUNIT_TEST(testIsColumnVector);
      52           1 :     CPPUNIT_TEST(testIsRowVector);
      53           1 :     CPPUNIT_TEST(testLength);
      54           1 :     CPPUNIT_TEST(testReshape);
      55           1 :     CPPUNIT_TEST(testReshapeBad);
      56           1 :     CPPUNIT_TEST(testQuadraticDot);
      57           1 :     CPPUNIT_TEST(testDiagonalGetSet);
      58           1 :     CPPUNIT_TEST(testDiagonalMultiplication);
      59           1 :     CPPUNIT_TEST(testDiagonalMultiplication2);
      60           1 :     CPPUNIT_TEST(testDenseTimesDiagonal);
      61           1 :     CPPUNIT_TEST(testQuadDiagonal);
      62           1 :     CPPUNIT_TEST(testQuadSymmetric);
      63           1 :     CPPUNIT_TEST(testSubtract);    
      64           1 :     CPPUNIT_TEST(testLowerTriangular_getSet);
      65           1 :     CPPUNIT_TEST(testSymmetric_getSet);
      66           1 :     CPPUNIT_TEST(testTranspose);
      67           1 :     CPPUNIT_TEST(testLeftTransposeMultiply);
      68           1 :     CPPUNIT_TEST(testRightTransposeMultiply);
      69           1 :     CPPUNIT_TEST(testLowerTriangularTraspose_getSet);
      70           1 :     CPPUNIT_TEST(testLeftSymmetricMultiply);
      71           1 :     CPPUNIT_TEST(testSparseGetSet);    
      72           1 :     CPPUNIT_TEST(testSparseAddDense);
      73           1 :     CPPUNIT_TEST(testSparseAddSparse);
      74           1 :     CPPUNIT_TEST(testSparseAddSparse2);
      75           1 :     CPPUNIT_TEST(testSparseQuad);
      76           1 :     CPPUNIT_TEST(testSparseQuadSparseX);
      77           1 :     CPPUNIT_TEST(testSparseQuad_q);
      78           1 :     CPPUNIT_TEST(testSparseDotProd);
      79           1 :     CPPUNIT_TEST(testSubmatrix);
      80           1 :     CPPUNIT_TEST(testSubmatrixSparse);
      81           1 :     CPPUNIT_TEST(testSubmatrixTranspose);
      82           1 :     CPPUNIT_TEST(testSubmatrixMultiply);
      83           1 :     CPPUNIT_TEST(testSubmatrixMultiplyTr);
      84           1 :     CPPUNIT_TEST(testToggleDiagonal);
      85           1 :     CPPUNIT_TEST(testOpplus);
      86           1 :     CPPUNIT_TEST(testOpplus2);
      87           1 :     CPPUNIT_TEST(testOpplusSparse);
      88             : 
      89             : 
      90           1 :     CPPUNIT_TEST(test_ADD1);
      91           1 :     CPPUNIT_TEST(test_ADD2);
      92           1 :     CPPUNIT_TEST(test_ADS);
      93           1 :     CPPUNIT_TEST(test_ADH);
      94           1 :     CPPUNIT_TEST(test_ADX);
      95           1 :     CPPUNIT_TEST(test_ADL);
      96           1 :     CPPUNIT_TEST(test_ADW);    
      97             : 
      98           1 :     CPPUNIT_TEST(test_ADDT);
      99           1 :     CPPUNIT_TEST(test_ADST);
     100           1 :     CPPUNIT_TEST(test_ADHT);
     101           1 :     CPPUNIT_TEST(test_ADXT);
     102           1 :     CPPUNIT_TEST(test_ADLT);
     103           1 :     CPPUNIT_TEST(test_ADWT);
     104             : 
     105           1 :     CPPUNIT_TEST(test_AHH);
     106           1 :     CPPUNIT_TEST(test_AHD);
     107           1 :     CPPUNIT_TEST(test_AHX);
     108           1 :     CPPUNIT_TEST(test_AHL);
     109           1 :     CPPUNIT_TEST(test_AHS);
     110             : 
     111           1 :     CPPUNIT_TEST(test_ASD);
     112           1 :     CPPUNIT_TEST(test_ASH);
     113           1 :     CPPUNIT_TEST(test_ASX);
     114           1 :     CPPUNIT_TEST(test_ASL);
     115           1 :     CPPUNIT_TEST(test_ASS);   
     116             :     
     117           1 :     CPPUNIT_TEST(test_ADTDT);
     118           1 :     CPPUNIT_TEST(test_ASTDT);
     119             :     
     120           1 :     CPPUNIT_TEST(test_ALL);
     121           1 :     CPPUNIT_TEST(test_ALX);
     122             : 
     123           1 :     CPPUNIT_TEST(test_AXX);
     124             :     
     125           1 :     CPPUNIT_TEST(test_ASST);
     126             :     
     127             :     
     128             : 
     129           1 :     CPPUNIT_TEST(test_EH);
     130           1 :     CPPUNIT_TEST(test_EX);
     131           1 :     CPPUNIT_TEST(test_EHT);
     132           1 :     CPPUNIT_TEST(test_EDT);
     133           1 :     CPPUNIT_TEST(test_EL);
     134           1 :     CPPUNIT_TEST(test_ES);
     135           1 :     CPPUNIT_TEST(test_EST);
     136             : 
     137           1 :     CPPUNIT_TEST(test_CD);
     138           1 :     CPPUNIT_TEST(test_CH);
     139           1 :     CPPUNIT_TEST(test_CS);
     140             : 
     141           1 :     CPPUNIT_TEST(test_MDD1);
     142           1 :     CPPUNIT_TEST(test_MDL);
     143           1 :     CPPUNIT_TEST(test_MDH);
     144           1 :     CPPUNIT_TEST(test_MDS);
     145             :     
     146           1 :     CPPUNIT_TEST(test_MSS);
     147           1 :     CPPUNIT_TEST(test_MSX);
     148           1 :     CPPUNIT_TEST(test_MSD);
     149           1 :     CPPUNIT_TEST(test_MSDT);
     150           1 :     CPPUNIT_TEST(test_MSTDT);
     151             :     
     152           1 :     CPPUNIT_TEST(test_MXH);
     153           1 :     CPPUNIT_TEST(test_MXL);
     154           1 :     CPPUNIT_TEST(test_MDX);
     155             : 
     156           5 :     CPPUNIT_TEST_SUITE_END();
     157             : 
     158             :         
     159             :     
     160             : public:
     161             :     TestMatrix();
     162             :     virtual ~TestMatrix();
     163             :     void setUp();
     164             :     void tearDown();
     165             : 
     166             : private:
     167             :     void testMethod();
     168             : 
     169             :     void testOpplus();
     170             :     void testOpplus2();
     171             :     void testOpplusSparse();
     172             :     void testQuadratic();
     173             :     void testQuadratic2();
     174             :     void testQuadratic3();
     175             :     void testQuadraticDot();
     176             :     void testGetSet();
     177             :     void testGetSetTranspose();
     178             :     void testAssignment();
     179             :     void test_ADD1();
     180             :     void testAdditionBad();
     181             :     void testFBMatrix();
     182             :     void testMakeRandomFBMatrix();
     183             :     void testGetData();
     184             :     void testGetNcols();
     185             :     void testGetNrows();
     186             :     void testIsColumnVector();
     187             :     void testIsRowVector();
     188             :     void testLength();
     189             :     void testReshape();
     190             :     void testReshapeBad();
     191             :     void testSubtract();
     192             :     void testDiagonalGetSet();
     193             :     void testDiagonalMultiplication();
     194             :     void testDiagonalMultiplication2();
     195             :     void testDenseTimesDiagonal();
     196             :     void testQuadDiagonal();
     197             :     void testQuadSymmetric();
     198             :     void testLowerTriangular_getSet();
     199             :     void testLowerTriangularTraspose_getSet();
     200             :     void testSymmetric_getSet();
     201             :     void testTranspose();
     202             :     void testLeftTransposeMultiply();
     203             :     void testRightTransposeMultiply();
     204             :     void testLeftSymmetricMultiply();
     205             :     void testSparseGetSet();    
     206             :     void test_MSS();
     207             :     void testSparseAddDense();
     208             :     void testSparseAddSparse();
     209             :     void testSparseAddSparse2();
     210             :     void testSparseQuad();
     211             :     void testSparseQuadSparseX();
     212             :     void testSparseQuad_q();
     213             :     void testSparseDotProd();
     214             :     void testSubmatrix();
     215             :     void testSubmatrixSparse();
     216             :     void testSubmatrixTranspose();
     217             :     void testSubmatrixMultiply();
     218             :     void testSubmatrixMultiplyTr();
     219             :     void testToggleDiagonal();
     220             : 
     221             :     /*
     222             :      * A: add
     223             :      * M: multiply
     224             :      * T: transpose
     225             :      * E: assignment
     226             :      * CL: scalar multiplication (left)
     227             :      * 
     228             :      * D: Dense
     229             :      * S: Sparse unsymmetric
     230             :      * H: Symmetric
     231             :      * X: Diagonal
     232             :      * L: Lower triangular
     233             :      * W: Sparse symmetric
     234             :      * 
     235             :      */
     236             : 
     237             :     /*
     238             :      * Copy-constructor and operator=
     239             :      */
     240             :     void test_EH();
     241             :     void test_EL();
     242             :     void test_EX();
     243             :     void test_ES();
     244             : 
     245             :     void test_EHT();
     246             :     void test_EDT();
     247             :     void test_EST();
     248             :     /*
     249             :      * Addition: X = A + B 
     250             :      */
     251             : 
     252             :     /*
     253             :      * DENSE + (?)
     254             :      */
     255             :     void test_ADD2();
     256             :     void test_ADS();
     257             :     void test_ADH();
     258             :     void test_ADX();
     259             :     void test_ADL();
     260             :     void test_ADW();
     261             : 
     262             : 
     263             :     /*
     264             :      * DENSE + (?)'
     265             :      */
     266             :     void test_ADDT();
     267             :     void test_ADST();
     268             :     void test_ADHT();
     269             :     void test_ADXT();
     270             :     void test_ADLT();
     271             :     void test_ADWT();
     272             :     
     273             :     /*
     274             :      * (?)' + DENSE'
     275             :      */
     276             :     void test_ADTDT();
     277             :     void test_ASTDT();
     278             : 
     279             :     /*
     280             :      * SYMMETRIC + (?) 
     281             :      */
     282             :     void test_AHD();
     283             :     void test_AHS();
     284             :     void test_AHH();
     285             :     void test_AHX();
     286             :     void test_AHL();
     287             :     void test_AHW();
     288             : 
     289             :     /*
     290             :      * SPARSE + (?)
     291             :      */
     292             :     void test_ASD();
     293             :     void test_ASS();
     294             :     void test_ASH();
     295             :     void test_ASX();
     296             :     void test_ASL();
     297             :     void test_ASW();
     298             : 
     299             : 
     300             :     /*
     301             :      * DIAGONAL + (?)
     302             :      */
     303             :     void test_AXD();
     304             :     void test_AXS();
     305             :     void test_AXH();
     306             :     void test_AXX();
     307             :     void test_AXL();
     308             :     void test_AXW();
     309             : 
     310             :     /*
     311             :      * SPARSE + (?)'
     312             :      */
     313             :     void test_ASST();
     314             : 
     315             :     /*
     316             :      * LOWER_TR + (?)
     317             :      */
     318             :     void test_ALX();
     319             :     void test_ALL();
     320             : 
     321             :     /*
     322             :      * alpha * X
     323             :      */
     324             :     void test_CD();
     325             :     void test_CH();
     326             :     void test_CL();
     327             :     void test_CS();
     328             :     void test_CX();
     329             : 
     330             :     /*
     331             :      * MULTIPLICATION TESTS
     332             :      */
     333             :     void test_MDD1();
     334             :     void test_MXH();
     335             :     void test_MXL();
     336             :     void test_MDH();
     337             :     void test_MDL();
     338             :     void test_MDX();
     339             :     void test_MSX();
     340             :     void test_MSD();
     341             :     void test_MDS();
     342             :     void test_MSDT();
     343             :     void test_MSTDT();
     344             : };
     345             : 
     346             : #endif  /* TESTMATRIX_H */
     347             : 

Generated by: LCOV version 1.10