You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							81 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							81 lines
						
					
					
						
							1.9 KiB
						
					
					
				#define GLM_ENABLE_EXPERIMENTAL | 
						|
#include <glm/gtx/norm.hpp> | 
						|
 | 
						|
 | 
						|
int test_lMaxNorm() | 
						|
{ | 
						|
	int Error(0); | 
						|
	 | 
						|
	{ | 
						|
		float norm = glm::lMaxNorm(glm::vec3(-1, -2, -3)); | 
						|
		Error += glm::epsilonEqual(norm, 3.f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
 | 
						|
	{ | 
						|
		float norm = glm::lMaxNorm(glm::vec3(2, 3, 1)); | 
						|
		Error += glm::epsilonEqual(norm, 3.f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
   | 
						|
	return Error; | 
						|
} | 
						|
 | 
						|
int test_lxNorm() | 
						|
{ | 
						|
	int Error(0); | 
						|
 | 
						|
	{ | 
						|
		unsigned int depth_1 = 1; | 
						|
		float normA = glm::lxNorm(glm::vec3(2, 3, 1), depth_1); | 
						|
		float normB = glm::l1Norm(glm::vec3(2, 3, 1)); | 
						|
		Error += glm::epsilonEqual(normA, normB, 0.00001f) ? 0 : 1; | 
						|
		Error += glm::epsilonEqual(normA, 6.f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
 | 
						|
	{ | 
						|
		unsigned int depth_1 = 1; | 
						|
		float normA = glm::lxNorm(glm::vec3(-1, -2, -3), depth_1); | 
						|
		float normB = glm::l1Norm(glm::vec3(-1, -2, -3)); | 
						|
		Error += glm::epsilonEqual(normA, normB, 0.00001f) ? 0 : 1; | 
						|
		Error += glm::epsilonEqual(normA, 6.f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
 | 
						|
	{ | 
						|
		unsigned int depth_2 = 2; | 
						|
		float normA = glm::lxNorm(glm::vec3(2, 3, 1), depth_2); | 
						|
		float normB = glm::l2Norm(glm::vec3(2, 3, 1)); | 
						|
		Error += glm::epsilonEqual(normA, normB, 0.00001f) ? 0 : 1; | 
						|
		Error += glm::epsilonEqual(normA, 3.741657387f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
 | 
						|
	{ | 
						|
		unsigned int depth_2 = 2; | 
						|
		float normA = glm::lxNorm(glm::vec3(-1, -2, -3), depth_2); | 
						|
		float normB = glm::l2Norm(glm::vec3(-1, -2, -3)); | 
						|
		Error += glm::epsilonEqual(normA, normB, 0.00001f) ? 0 : 1; | 
						|
		Error += glm::epsilonEqual(normA, 3.741657387f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
 | 
						|
	{ | 
						|
		unsigned int oddDepth = 3; | 
						|
		float norm = glm::lxNorm(glm::vec3(2, 3, 1), oddDepth); | 
						|
		Error += glm::epsilonEqual(norm, 3.301927249f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
 | 
						|
	{ | 
						|
		unsigned int oddDepth = 3; | 
						|
		float norm = glm::lxNorm(glm::vec3(-1, -2, -3), oddDepth); | 
						|
		Error += glm::epsilonEqual(norm, 3.301927249f, 0.00001f) ? 0 : 1; | 
						|
	} | 
						|
 | 
						|
	return Error; | 
						|
} | 
						|
 | 
						|
int main() | 
						|
{ | 
						|
	int Error(0); | 
						|
 | 
						|
	Error += test_lMaxNorm(); | 
						|
	Error += test_lxNorm(); | 
						|
 | 
						|
	return Error; | 
						|
}
 | 
						|
 |