⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_sym_matrix.cxx

📁 InsightToolkit-1.4.0(有大量的优化算法程序)
💻 CXX
字号:
// This is vxl/vnl/tests/test_sym_matrix.cxx
#include <vcl_iostream.h>
#include <vnl/vnl_sym_matrix.h>
#include <testlib/testlib_test.h>

static
void test_int ()
{
  vcl_cout << "*****************************\n"
           << "Testing Symmetric Matrix<int>\n"
           << "*****************************\n";
  vnl_sym_matrix<int> sm1(2);
  TEST ("\n\nvnl_sym_matrix<int> m1(2)", (sm1.rows()==2 && sm1.columns()==2), true);
  vnl_sym_matrix<int> sm2(2,2);
  TEST ("\n\nvnl_sym_matrix<int> sm2(2,2)",
        (sm2(0,0)==2 && sm2(0,1)==2 && sm2(1,0)==2 && sm2(1,1)==2), true);
  const vnl_matrix<int> ma1(2, 2, 3);
  const vnl_sym_matrix<int> sm3(ma1);
  TEST ("\n\n(const vnl_sym_matrix) sm3",
        (sm3(0,0)==3 && sm3(0,1)==3 && sm3(1,0)==3 && sm3(1,1)==3), true);
  vcl_cout << "sm3 \n" << sm3 <<vcl_endl << vcl_endl;

  int td[] = {1, 2, 3};
  vnl_sym_matrix<int> sm4(td, 2);
  vcl_cout << "sm4 \n" << sm4 << vcl_endl << vcl_endl;
  vnl_matrix<int>  ma2 = sm4.as_matrix();
  TEST ("(const vnl_matrix) ma2", 
    (ma2(0,0)==1 && ma2(0,1)==2 && ma2(1,0)==2 && ma2(1,1)==3), true);
  vcl_cout << "ma2 \n" << ma2 << vcl_endl << vcl_endl;
  TEST ("operator== ", ma2==sm4 && !(ma2==sm3), true);
  vcl_cout << "sm3 \n" << sm3 << vcl_endl << vcl_endl;

  int td5[] = {0, 0, 0};
  vnl_sym_matrix<int> sm5(td5, 2);
  swap(sm5, sm4);
  TEST ("swap",
        (sm4(0,0)==0 && sm4(0,1)==0 && sm4(1,0)==0 && sm4(1,1)==0) &&
        (sm5(0,0)==1 && sm5(0,1)==2 && sm5(1,0)==2 && sm5(1,1)==3), true);

  vnl_sym_matrix<int> sm6(3, 0);
  sm6.update(sm5,1);
  TEST ("update",
        (sm6(0,0)==0 && sm6(0,1)==0 && sm6(0,2)==0 &&
         sm6(1,0)==0 && sm6(1,1)==1 && sm6(1,2)==2 && 
         sm6(2,0)==0 && sm6(2,1)==2 && sm6(2,2)==3), true);
  vcl_cout << "sm6 \n" << sm6 << vcl_endl << vcl_endl;

  sm5 = sm6;
  TEST ("operator =",
        (sm5(0,0)==0 && sm5(0,1)==0 && sm5(0,2)==0 &&
         sm5(1,0)==0 && sm5(1,1)==1 && sm5(1,2)==2 && 
         sm5(2,0)==0 && sm5(2,1)==2 && sm5(2,2)==3), true);
  vcl_cout << "sm5 \n" << sm5 << vcl_endl << vcl_endl;

  TEST ("operator ==",
        (sm5==sm6 && !(sm5==sm4) && !(sm4==sm3)), true);
  vcl_cout << "sm4 sm3 \n" << sm4 << vcl_endl << sm3 << vcl_endl << vcl_endl;

  vnl_vector<int> v1(2,5);
  sm5.set_half_row(v1, 1);
  TEST ("set_half_row",
        (sm5(0,0)==0 && sm5(0,1)==5 && sm5(0,2)==0 &&
         sm5(1,0)==5 && sm5(1,1)==5 && sm5(1,2)==2 && 
         sm5(2,0)==0 && sm5(2,1)==2 && sm5(2,2)==3), true);
  vcl_cout << "sm5 \n" << sm5 << vcl_endl << vcl_endl;
}


static
void test_sym_matrix()
{
  test_int ();
}

TESTMAIN(test_sym_matrix);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -