public void Equals_WithMismatchedBuilders_ReturnsFalse()
        {
            {
                var builder0 = TestSystem.Entities.WithAll <EcsTestData>();
                var builder1 = TestSystem.Entities.WithAll <EcsTestData2>();
                Assert.IsFalse(builder0.ShallowEquals(ref builder1));
            }

            {
                var builder0 = TestSystem.Entities.WithAny <EcsTestData3>();
                var builder1 = TestSystem.Entities.WithAny <EcsTestData3, EcsTestData4>();
                Assert.IsFalse(builder0.ShallowEquals(ref builder1));
            }

            {
                var builder0 = TestSystem.Entities.WithNone <EcsTestData3>();
                var builder1 = TestSystem.Entities.WithAll <EcsTestData3>();
                Assert.IsFalse(builder0.ShallowEquals(ref builder1));
            }

            {
                var group    = TestSystem.GetComponentGroup(ComponentType.ReadWrite <EcsTestData>());
                var builder0 = TestSystem.Entities.With(group);
                var builder1 = TestSystem.Entities;
                Assert.IsFalse(builder0.ShallowEquals(ref builder1));
            }
        }
        public void WithSpec_WithExistingGroup_Throws()
        {
            var group = TestSystem.GetComponentGroup(ComponentType.ReadWrite <EcsTestData>());

            Assert.Throws <InvalidOperationException>(() => TestSystem.Entities.With(group).WithAny <EcsTestData>());
            Assert.Throws <InvalidOperationException>(() => TestSystem.Entities.With(group).WithNone <EcsTestData>());
            Assert.Throws <InvalidOperationException>(() => TestSystem.Entities.With(group).WithAll <EcsTestData>());
        }
        public void WithGroup_WithExistingGroup_Throws()
        {
            var group0 = TestSystem.GetComponentGroup(ComponentType.ReadWrite <EcsTestData>());
            var group1 = TestSystem.GetComponentGroup(ComponentType.ReadOnly <EcsTestData>());

            var query = TestSystem.Entities.With(group0);

            Assert.Throws <InvalidOperationException>(() => query.With(group1));
        }
        public void Equals_WithDifferentGroups_ReturnsFalse()
        {
            var group0 = TestSystem.GetComponentGroup(ComponentType.ReadWrite <EcsTestData>());
            var group1 = TestSystem.GetComponentGroup(ComponentType.ReadOnly <EcsTestData>());

            var builder0 = TestSystem.Entities.With(group0);
            var builder1 = TestSystem.Entities.With(group1);

            Assert.IsFalse(builder0.ShallowEquals(ref builder1));
        }