From c8d3b211b8328452c9d15955004030430a99d1fc Mon Sep 17 00:00:00 2001 From: HampusM Date: Thu, 21 Aug 2025 17:48:08 +0200 Subject: test(ecs): add query with pair tests --- ecs/tests/query.rs | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'ecs/tests') diff --git a/ecs/tests/query.rs b/ecs/tests/query.rs index 062fd5a..8615e3a 100644 --- a/ecs/tests/query.rs +++ b/ecs/tests/query.rs @@ -1,4 +1,5 @@ use ecs::component::Component; +use ecs::pair::{Pair, Wildcard}; use ecs::query::term::Without; use ecs::query::{ TermWithFieldTuple as QueryTermWithFieldTuple, @@ -320,3 +321,59 @@ fn query_without_comp_and_archetype_nonexistant() vec![ent_1_id, ent_2_id], ); } + +#[test] +fn query_with_wildcard_target_pair() +{ + setup(); + + let _test_lock = TEST_LOCK.lock(); + + let mut world = World::new(); + + let ent_1_id = world.create_entity((A, C)); + + world.create_entity((B,)); + + let ent_2_id = world.create_entity((B, Pair::new::(ent_1_id))); + + world.create_entity((B, Pair::new::(ent_1_id))); + world.create_entity((B, A, C, Pair::new::(ent_1_id))); + + let ent_3_id = world.create_entity((B, Pair::new::(ent_2_id))); + + let ent_4_id = world.create_entity((B, E, Pair::new_with_comp_target::(D))); + + assert_query_finds_ents( + world.query::<(&B, Pair), ()>(), + vec![ent_2_id, ent_3_id, ent_4_id], + ); +} + +#[test] +fn query_with_component_target_pair() +{ + setup(); + + let _test_lock = TEST_LOCK.lock(); + + let mut world = World::new(); + + let ent_1_id = world.create_entity((A, C)); + + world.create_entity((B,)); + + world.create_entity((B, Pair::new::(ent_1_id))); + + world.create_entity((B, Pair::new::(ent_1_id))); + world.create_entity((B, A, C, Pair::new::(ent_1_id))); + + let ent_2_id = world.create_entity((B, Pair::new_with_comp_target::(F))); + + let ent_3_id = world.create_entity((B, E, Pair::new_with_comp_target::(F))); + + assert_query_finds_ents( + world.query::<(&B, Pair), ()>(), + vec![ent_2_id, ent_3_id], + ); +} -- cgit v1.2.3-18-g5258