mirror of
				https://github.com/Ukendio/jecs.git
				synced 2025-11-04 02:49:18 +00:00 
			
		
		
		
	Add tests
This commit is contained in:
		
							parent
							
								
									ba74d6b471
								
							
						
					
					
						commit
						a0aac721a9
					
				
					 1 changed files with 17 additions and 34 deletions
				
			
		| 
						 | 
					@ -62,6 +62,10 @@ local function debug_world_inspect(world: World)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local function name(world, e)
 | 
				
			||||||
 | 
						return world:get(e, jecs.Name)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST("archetype", function()
 | 
					TEST("archetype", function()
 | 
				
			||||||
	local archetype_append_to_records = jecs.archetype_append_to_records
 | 
						local archetype_append_to_records = jecs.archetype_append_to_records
 | 
				
			||||||
	local id_record_ensure = jecs.id_record_ensure
 | 
						local id_record_ensure = jecs.id_record_ensure
 | 
				
			||||||
| 
						 | 
					@ -353,6 +357,19 @@ TEST("world:add()", function()
 | 
				
			||||||
end)
 | 
					end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST("world:query()", function()
 | 
					TEST("world:query()", function()
 | 
				
			||||||
 | 
						do CASE "cached"
 | 
				
			||||||
 | 
							local world = world_new()
 | 
				
			||||||
 | 
							local Foo = world:component()
 | 
				
			||||||
 | 
							local Bar = world:component()
 | 
				
			||||||
 | 
							local e = world:entity()
 | 
				
			||||||
 | 
							world:set(e, Foo, true)
 | 
				
			||||||
 | 
							local q = world:query(Foo):cached()
 | 
				
			||||||
 | 
							world:set(e, Bar, false)
 | 
				
			||||||
 | 
							for _, e in q do
 | 
				
			||||||
 | 
								CHECK(true)
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							CHECK(#q.compatible_archetypes == 2)
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
	do CASE("multiple iter")
 | 
						do CASE("multiple iter")
 | 
				
			||||||
		local world = jecs.World.new()
 | 
							local world = jecs.World.new()
 | 
				
			||||||
		local A = world:component()
 | 
							local A = world:component()
 | 
				
			||||||
| 
						 | 
					@ -808,40 +825,6 @@ TEST("world:query()", function()
 | 
				
			||||||
		CHECK(withoutCount == 0)
 | 
							CHECK(withoutCount == 0)
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	do
 | 
					 | 
				
			||||||
		CASE("Empty Query")
 | 
					 | 
				
			||||||
		do
 | 
					 | 
				
			||||||
			local world = jecs.World.new()
 | 
					 | 
				
			||||||
			local A = world:component()
 | 
					 | 
				
			||||||
			local B = world:component()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			local e1 = world:entity()
 | 
					 | 
				
			||||||
			world:add(e1, A)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			local query = world:query(B)
 | 
					 | 
				
			||||||
			CHECK(query:without() == query)
 | 
					 | 
				
			||||||
			CHECK(query:with() == query)
 | 
					 | 
				
			||||||
			-- They always return the same EMPTY_LIST
 | 
					 | 
				
			||||||
			CHECK(query:archetypes() == world:query(B):archetypes())
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		do
 | 
					 | 
				
			||||||
			local world = jecs.World.new()
 | 
					 | 
				
			||||||
			local A = world:component()
 | 
					 | 
				
			||||||
			local B = world:component()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			local e1 = world:entity()
 | 
					 | 
				
			||||||
			world:add(e1, A)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			local count = 0
 | 
					 | 
				
			||||||
			for id in world:query(B) do
 | 
					 | 
				
			||||||
				count += 1
 | 
					 | 
				
			||||||
			end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			CHECK(count == 0)
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	do
 | 
						do
 | 
				
			||||||
		CASE("without")
 | 
							CASE("without")
 | 
				
			||||||
		do
 | 
							do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue