@@ -1736,3 +1736,103 @@ void Iter_get_first() {
17361736
17371737 ecs_fini (world );
17381738}
1739+
1740+ void Iter_page_iter_w_only_tag () {
1741+ ecs_world_t * world = ecs_mini ();
1742+
1743+ ECS_TAG (world , Tag );
1744+
1745+ ecs_filter_t * f = ecs_filter (world , {
1746+ .terms = {{ Tag }}
1747+ });
1748+
1749+ ecs_new (world , Tag );
1750+ ecs_entity_t e2 = ecs_new (world , Tag );
1751+
1752+ ecs_iter_t it = ecs_filter_iter (world , f );
1753+ ecs_iter_t pit = ecs_page_iter (& it , 1 , 0 );
1754+
1755+ test_assert (ecs_page_next (& pit ));
1756+ test_int (pit .count , 1 );
1757+ test_uint (pit .entities [0 ], e2 );
1758+ test_assert (!ecs_page_next (& pit ));
1759+
1760+ ecs_filter_fini (f );
1761+
1762+ ecs_fini (world );
1763+ }
1764+
1765+ void Iter_worker_iter_w_only_tag () {
1766+ ecs_world_t * world = ecs_mini ();
1767+
1768+ ECS_TAG (world , Tag );
1769+
1770+ ecs_filter_t * f = ecs_filter (world , {
1771+ .terms = {{ Tag }}
1772+ });
1773+
1774+ ecs_new (world , Tag );
1775+ ecs_entity_t e2 = ecs_new (world , Tag );
1776+
1777+ ecs_iter_t it = ecs_filter_iter (world , f );
1778+ ecs_iter_t pit = ecs_worker_iter (& it , 1 , 2 );
1779+
1780+ test_assert (ecs_worker_next (& pit ));
1781+ test_int (pit .count , 1 );
1782+ test_uint (pit .entities [0 ], e2 );
1783+ test_assert (!ecs_worker_next (& pit ));
1784+
1785+ ecs_filter_fini (f );
1786+
1787+ ecs_fini (world );
1788+ }
1789+
1790+ void Iter_page_iter_w_inout_none () {
1791+ ecs_world_t * world = ecs_mini ();
1792+
1793+ ECS_COMPONENT (world , Position );
1794+
1795+ ecs_filter_t * f = ecs_filter (world , {
1796+ .terms = {{ ecs_id (Position ), .inout = EcsInOutNone }}
1797+ });
1798+
1799+ ecs_new (world , Position );
1800+ ecs_entity_t e2 = ecs_new (world , Position );
1801+
1802+ ecs_iter_t it = ecs_filter_iter (world , f );
1803+ ecs_iter_t pit = ecs_page_iter (& it , 1 , 0 );
1804+
1805+ test_assert (ecs_page_next (& pit ));
1806+ test_int (pit .count , 1 );
1807+ test_uint (pit .entities [0 ], e2 );
1808+ test_assert (!ecs_page_next (& pit ));
1809+
1810+ ecs_filter_fini (f );
1811+
1812+ ecs_fini (world );
1813+ }
1814+
1815+ void Iter_worker_iter_w_inout_none () {
1816+ ecs_world_t * world = ecs_mini ();
1817+
1818+ ECS_COMPONENT (world , Position );
1819+
1820+ ecs_filter_t * f = ecs_filter (world , {
1821+ .terms = {{ ecs_id (Position ), .inout = EcsInOutNone }}
1822+ });
1823+
1824+ ecs_new (world , Position );
1825+ ecs_entity_t e2 = ecs_new (world , Position );
1826+
1827+ ecs_iter_t it = ecs_filter_iter (world , f );
1828+ ecs_iter_t pit = ecs_worker_iter (& it , 1 , 2 );
1829+
1830+ test_assert (ecs_worker_next (& pit ));
1831+ test_int (pit .count , 1 );
1832+ test_uint (pit .entities [0 ], e2 );
1833+ test_assert (!ecs_worker_next (& pit ));
1834+
1835+ ecs_filter_fini (f );
1836+
1837+ ecs_fini (world );
1838+ }
0 commit comments