public void ShouldPromoteReadToWrite()
        {
            var a = new DependencyList("a", 0, deps => deps.Read <Position>());
            var b = new DependencyList("b", 0, deps => deps.Write <Position>());

            var c = DependencyList.MergeComponents("c", 0, new[] { a, b });

            c._writeComponents.Count.ShouldBe(1);
            c._writeComponents.ShouldContain(ComponentType <Position> .Type);
            c._readComponents.Count.ShouldBe(0);
            c._allComponents.Count.ShouldBe(1);
        }
        public void ShouldMergeWrites()
        {
            var a = new DependencyList("a", 0, deps => deps.Write <Position>());
            var b = new DependencyList("b", 0, deps => deps.Write <Velocity>());

            var c = DependencyList.MergeComponents("c", 0, new[] { a, b });

            c._writeComponents.Count.ShouldBe(2);
            c._writeComponents.ShouldContain(ComponentType <Position> .Type);
            c._writeComponents.ShouldContain(ComponentType <Velocity> .Type);
            c._readComponents.Count.ShouldBe(0);
            c._allComponents.Count.ShouldBe(2);
        }