/* * Project: MoleCuilder * Description: creates and alters molecular systems * Copyright (C) 2010 University of Bonn. All rights reserved. * Please see the LICENSE file or "Copyright notice" in builder.cpp for details. */ /* * SubspaceFactorizerUnittest.cpp * * Created on: Nov 13, 2010 * Author: heber */ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include "SubspaceFactorizerUnittest.hpp" #include "LinearAlgebra/VectorContent.hpp" #include "LinearAlgebra/MatrixContent.hpp" #ifdef HAVE_TESTRUNNER #include "UnitTestMain.hpp" #endif /*HAVE_TESTRUNNER*/ // Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SubspaceFactorizerUnittest ); void SubspaceFactorizerUnittest::setUp(){ fourbyfour = new MatrixContent(4,4); fourbyfour->setZero(); for (int i=0; i<4 ; i++) { fourbyfour->set(i,i, 2.); if (i < (4-1)) { fourbyfour->set(i+1,i, 1.); fourbyfour->set(i,i+1, 1.); } } permU1_1 = new MatrixContent(4,1); permU1_1->setZero(); permU1_1->set(0,0, 1.); permU1_2 = new MatrixContent(4,1); permU1_2->setZero(); permU1_2->set(1,0, 1.); permU1_3 = new MatrixContent(4,1); permU1_3->setZero(); permU1_3->set(2,0, 1.); permU1_4 = new MatrixContent(4,1); permU1_4->setZero(); permU1_4->set(3,0, 1.); permU2_1 = new MatrixContent(4,2); permU2_1->setZero(); permU2_1->set(0,0, 1.); permU2_1->set(1,1, 1.); permU2_2 = new MatrixContent(4,2); permU2_2->setZero(); permU2_2->set(1,0, 1.); permU2_2->set(2,1, 1.); permU2_3 = new MatrixContent(4,2); permU2_3->setZero(); permU2_3->set(2,0, 1.); permU2_3->set(3,1, 1.); permU3_1 = new MatrixContent(4,3); permU3_1->setZero(); permU3_1->set(0,0, 1.); permU3_1->set(1,1, 1.); permU3_1->set(2,2, 1.); permU3_2 = new MatrixContent(4,3); permU3_2->setZero(); permU3_2->set(1,0, 1.); permU3_2->set(2,1, 1.); permU3_2->set(3,2, 1.); } void SubspaceFactorizerUnittest::tearDown(){ delete fourbyfour; delete permU1_1; delete permU1_2; delete permU1_3; delete permU1_4; delete permU2_1; delete permU2_2; delete permU2_3; delete permU3_1; delete permU3_2; } void SubspaceFactorizerUnittest::BlockTest() { MatrixContent temp((*fourbyfour)*(*permU1_1)); std::cout << "Our matrix is " << *fourbyfour << "." << std::endl; std::cout << "Multiplying " << *fourbyfour << " by " << *permU1_1 << " is: " << std::endl; std::cout << temp << std::endl; gsl_vector *eigenvalues = temp.transformToEigenbasis(); std::cout << "The resulting eigenbasis is " << temp << " with eigenvalues " << gsl_vector_get(eigenvalues, 0) << std::endl; gsl_vector_free(eigenvalues); CPPUNIT_ASSERT_EQUAL(0,0); }