mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Add MultiLevelQueue Tests
This commit is contained in:
		
							parent
							
								
									3bc815a5dc
								
							
						
					
					
						commit
						9dbba9240b
					
				| @ -1,6 +1,7 @@ | ||||
| add_executable(tests | ||||
|     common/bit_field.cpp | ||||
|     common/bit_utils.cpp | ||||
|     common/multi_level_queue.cpp | ||||
|     common/param_package.cpp | ||||
|     common/ring_buffer.cpp | ||||
|     core/arm/arm_test_common.cpp | ||||
|  | ||||
							
								
								
									
										55
									
								
								src/tests/common/multi_level_queue.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/tests/common/multi_level_queue.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | ||||
| // Copyright 2019 Yuzu Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include <catch2/catch.hpp> | ||||
| #include <math.h> | ||||
| #include "common/common_types.h" | ||||
| #include "common/multi_level_queue.h" | ||||
| 
 | ||||
| namespace Common { | ||||
| 
 | ||||
| TEST_CASE("MultiLevelQueue", "[common]") { | ||||
|     std::array<f32, 8> values = {0.0, 5.0, 1.0, 9.0, 8.0, 2.0, 6.0, 7.0}; | ||||
|     Common::MultiLevelQueue<f32,64> mlq; | ||||
|     REQUIRE(mlq.empty()); | ||||
|     mlq.add(values[2], 2); | ||||
|     mlq.add(values[7], 7); | ||||
|     mlq.add(values[3], 3); | ||||
|     mlq.add(values[4], 4); | ||||
|     mlq.add(values[0], 0); | ||||
|     mlq.add(values[5], 5); | ||||
|     mlq.add(values[6], 6); | ||||
|     mlq.add(values[1], 1); | ||||
|     u32 index = 0; | ||||
|     bool all_set = true; | ||||
|     for (auto& f : mlq) { | ||||
|         all_set &= (f == values[index]); | ||||
|         index++; | ||||
|     } | ||||
|     REQUIRE(all_set); | ||||
|     REQUIRE(!mlq.empty()); | ||||
|     f32 v = 8.0; | ||||
|     mlq.add(v, 2); | ||||
|     v = -7.0; | ||||
|     mlq.add(v, 2, false); | ||||
|     REQUIRE(mlq.front(2) == -7.0); | ||||
|     mlq.yield(2); | ||||
|     REQUIRE(mlq.front(2) == values[2]); | ||||
|     REQUIRE(mlq.back(2) == -7.0); | ||||
|     REQUIRE(mlq.empty(8)); | ||||
|     v = 10.0; | ||||
|     mlq.add(v, 8); | ||||
|     mlq.adjust(v, 8, 9); | ||||
|     REQUIRE(mlq.front(9) == v); | ||||
|     REQUIRE(mlq.empty(8)); | ||||
|     REQUIRE(!mlq.empty(9)); | ||||
|     mlq.adjust(values[0], 0, 9); | ||||
|     REQUIRE(mlq.highest_priority_set() == 1); | ||||
|     REQUIRE(mlq.lowest_priority_set() == 9); | ||||
|     mlq.remove(values[1], 1); | ||||
|     REQUIRE(mlq.highest_priority_set() == 2); | ||||
|     REQUIRE(mlq.empty(1)); | ||||
| } | ||||
| 
 | ||||
| } // namespace Common
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Fernando Sahmkow
						Fernando Sahmkow