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

📄 spidxtest.cpp

📁 Gaussian Mixture Algorithm
💻 CPP
字号:
/* * spIdxTest.cpp * *      Author: cyril Poulet */#include "spIdxTest.h"void spIdxTest::test_set_get(){	intg dims[2] = {4, 4};	spIdx<intg> sptest(0, 2, dims);	for(int i = 0; i<4; i++)		for(int j = 0; j<4; j++){			CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i,j));		};	sptest.set(36, 3, 2);	CPPUNIT_ASSERT_EQUAL((intg)1, sptest.nelements());	for(int i = 0; i<4; i++)		for(int j = 0; j<4; j++){			if((i==3)&& (j==2)) CPPUNIT_ASSERT_EQUAL((intg)36, sptest.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i,j));		};	sptest.set(36, 2, 1);	CPPUNIT_ASSERT_EQUAL((intg)2, sptest.nelements());	for(int i = 0; i<4; i++){		for(int j = 0; j<4; j++){			if((i==3)&&(j==2)) CPPUNIT_ASSERT_EQUAL( (intg)36, sptest.get(i,j));			else if((i==2)&&(j==1)) CPPUNIT_ASSERT_EQUAL( (intg)36, sptest.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i,j));		};	};	sptest.set(27, 3, 2);	CPPUNIT_ASSERT_EQUAL((intg)2, sptest.nelements());	for(int i = 0; i<4; i++)		for(int j = 0; j<4; j++){			if((i==3)&& (j==2)) CPPUNIT_ASSERT_EQUAL((intg)27, sptest.get(i,j));			else if((i==2)&& (j==1)) CPPUNIT_ASSERT_EQUAL((intg)36, sptest.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i,j));		};	sptest.set(0, 3, 2);	CPPUNIT_ASSERT_EQUAL((intg)1, sptest.nelements());	for(int i = 0; i<4; i++)		for(int j = 0; j<4; j++){			if((i==2)&& (j==1)) CPPUNIT_ASSERT_EQUAL((intg)36, sptest.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i,j));		};	sptest.set(0, 2, 1);	CPPUNIT_ASSERT_EQUAL( (intg)0, sptest.nelements());	for(int i = 0; i<4; i++)		for(int j = 0; j<4; j++){			CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i,j));		};	sptest.set(0, 2, 1);	CPPUNIT_ASSERT_EQUAL((intg)0, sptest.nelements());	for(int i = 0; i<4; i++)		for(int j = 0; j<4; j++){			CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i,j));		};}void spIdxTest::test_const(){	spIdx<intg> sptest(0, 4, 4);	sptest.set(36, 3, 2);	sptest.set(24, 1, 2);	spIdx<intg> sptest2(sptest);	CPPUNIT_ASSERT_EQUAL((intg)36, sptest2.get(3,2));	sptest2.set(3, 2, 2);	CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(2,2));}void spIdxTest::test_narrow(){	spIdx<intg> sptest(0, 4, 4);	sptest.set(1, 1, 1);	sptest.set(2, 2, 2);	sptest.set(3, 3, 3);	sptest.set(4, 0, 0);	spIdx<intg> sptest2 = sptest.narrow(0, 1, 1);	CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.nelements());	for(int i = 0; i<4; i++){		if(i==1) CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.get(0,i));		else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(0,i));	};	sptest2 = sptest.narrow(0, 1, 2);	CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.nelements());	for(int i = 0; i<4; i++){		if(i==2) CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.get(0,i));		else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(0,i));	};	sptest2 = sptest.narrow(0, 3, 1);	CPPUNIT_ASSERT_EQUAL((intg)3, sptest2.nelements());	for(int i = 0; i<3; i++){		for(int j = 0; j<4; j++){			if((i==0)&&(j==1)) CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.get(i,j));			else if((i==1)&&(j==2)) CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.get(i,j));			else if((i==2)&&(j==3)) CPPUNIT_ASSERT_EQUAL((intg)3, sptest2.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(i,j));		};	};	sptest2 = sptest.narrow(1, 2, 1);	CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.nelements());	for(int i = 0; i<3; i++){		for(int j = 0; j<2; j++){			if((i==1)&&(j==0)) CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.get(i,j));			else if((i==2)&&(j==1)) CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(i,j));		};	};}void spIdxTest::test_select(){	spIdx<intg> sptest(0, 4, 4);	sptest.set(1, 1, 1);	sptest.set(2, 2, 2);	sptest.set(3, 3, 3);	sptest.set(4, 0, 0);	sptest.set(10, 3, 2);	spIdx<intg> sptest2 = sptest.select(0, 1);	CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.nelements());	for(int i = 0; i<4; i++){		if(i==1) CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.get(i));		else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(i));	};	sptest2 = sptest.select(0, 3);	CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.nelements());	for(int i = 0; i<4; i++){		if(i==2) CPPUNIT_ASSERT_EQUAL((intg)10, sptest2.get(i));		else if(i==3) CPPUNIT_ASSERT_EQUAL((intg)3, sptest2.get(i));		else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(i));	};	sptest2 = sptest.select(1, 3);	CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.nelements());	for(int i = 0; i<4; i++){		if(i==3) CPPUNIT_ASSERT_EQUAL((intg)3, sptest2.get(i));		else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(i));	};	sptest2 = sptest.select(1, 2);	CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.nelements());	for(int i = 0; i<4; i++){		if(i==2) CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.get(i));		else if(i==3) CPPUNIT_ASSERT_EQUAL((intg)10, sptest2.get(i));		else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(i));	};}void spIdxTest::test_transpose(){	spIdx<intg> sptest(0, 4, 4);	sptest.set(1, 0, 1);	sptest.set(2, 1, 2);	sptest.set(3, 2, 3);	sptest.set(4, 3, 0);	spIdx<intg> sptest2 = sptest.transpose(0, 1);	CPPUNIT_ASSERT_EQUAL((intg)4, sptest2.nelements());	for(int i = 0; i<4; i++){		for(int j = 0; j<4; j++){			if((i==1)&&(j==0)) CPPUNIT_ASSERT_EQUAL((intg)1, sptest2.get(i,j));			else if((i==2)&&(j==1)) CPPUNIT_ASSERT_EQUAL((intg)2, sptest2.get(i,j));			else if((i==3)&&(j==2)) CPPUNIT_ASSERT_EQUAL((intg)3, sptest2.get(i,j));			else if((i==0)&&(j==3)) CPPUNIT_ASSERT_EQUAL((intg)4, sptest2.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest2.get(i, j));		};	};	int p[2] = {1, 0};	spIdx<intg> sptest4 = sptest.transpose(p);	for(int i = 0; i<4; i++){		for(int j = 0; j<4; j++){			if((i==1)&&(j==0)) CPPUNIT_ASSERT_EQUAL((intg)1, sptest4.get(i,j));			else if((i==2)&&(j==1)) CPPUNIT_ASSERT_EQUAL((intg)2, sptest4.get(i,j));			else if((i==3)&&(j==2)) CPPUNIT_ASSERT_EQUAL((intg)3, sptest4.get(i,j));			else if((i==0)&&(j==3)) CPPUNIT_ASSERT_EQUAL((intg)4, sptest4.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest4.get(i, j));		};	};}void spIdxTest::test_resize(){	spIdx<intg> sptest(0, 4, 4);	sptest.set(1, 0, 1);	sptest.set(2, 1, 2);	sptest.set(3, 2, 3);	sptest.set(4, 3, 0);	sptest.resize(2, 3);	CPPUNIT_ASSERT_EQUAL((intg)2, sptest.nelements());	for(int i = 0; i<2; i++){		for(int j = 0; j<3; j++){			if((i==0)&&(j==1)) CPPUNIT_ASSERT_EQUAL((intg)1, sptest.get(i,j));			else if((i==1)&&(j==2)) CPPUNIT_ASSERT_EQUAL((intg)2, sptest.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i, j));		};	};	sptest.resize( 4, 4);	CPPUNIT_ASSERT_EQUAL((intg)2, sptest.nelements());	for(int i = 0; i<2; i++){		for(int j = 0; j<3; j++){			if((i==0)&&(j==1)) CPPUNIT_ASSERT_EQUAL((intg)1, sptest.get(i,j));			else if((i==1)&&(j==2)) CPPUNIT_ASSERT_EQUAL((intg)2, sptest.get(i,j));			else CPPUNIT_ASSERT_EQUAL((intg)BACKGROUND, sptest.get(i, j));		};	};}void spIdxTest::test_sort(){	spIdx<intg> sptest(0, 4, 4);	sptest.set(1, 0, 1);	sptest.set(3, 2, 3);	sptest.set(4, 3, 0);	sptest.set(2, 1, 2);	sptest.sort();	for(int i = 0; i<4; i++){		CPPUNIT_ASSERT_EQUAL((intg)(i+1), sptest.values()->get(i));	};}

⌨️ 快捷键说明

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