use flax::{component, Entity, World};
#[test]
fn prune_archetypes() {
component! {
a: (),
b: (),
c: (),
}
let mut world = World::new();
let id_a = Entity::builder().tag(a()).spawn(&mut world);
let id_ab = Entity::builder().tag(a()).tag(b()).spawn(&mut world);
let id_ac = Entity::builder().tag(a()).tag(c()).spawn(&mut world);
let id_abc = Entity::builder()
.tag(a())
.tag(b())
.tag(c())
.spawn(&mut world);
assert_eq!(world.prune_archetypes(), 0);
world.despawn(id_a).unwrap();
world.despawn(id_abc).unwrap();
assert_eq!(world.prune_archetypes(), 1);
world.despawn(id_ac).unwrap();
assert_eq!(world.prune_archetypes(), 1);
world.despawn(id_ab).unwrap();
assert_eq!(world.prune_archetypes(), 2);
assert_eq!(world.prune_archetypes(), 0);
}