public BasicCompoundElementRepository()
 {
     this.flatElementRepository   = new FlatElementRepository();
     this.elementByIdRepository   = new ElementByIdRepository();
     this.elementByTypeRepository = new ElementByTypeRepository();
     this.kdTreeElementRepository = new KdTreeElementRepository();
 }
 public RTreeCompoundElementRepository()
 {
     this.flatElementRepository   = new FlatElementRepository();
     this.elementByIdRepository   = new ElementByIdRepository();
     this.elementByTypeRepository = new ElementByTypeRepository();
     this.spatialRepositories     = new Dictionary <ElementType, RTreeElementRepository>();
 }
Example #3
0
    public void GetId_ThrowsExceptionWhenOutOfElementIds()
    {
        var repository = new ElementByIdRepository();
        var generator  = new RepositoryBasedElementIdGenerator(repository);

        for (int i = 0; i < ElementConstants.MaxElementId - 1; i++)
        {
            var second = generator.GetId();
            repository.Add(new DummyElement()
            {
                Id = second
            });
        }

        bool exceptionThrown = false;

        try
        {
            generator.GetId();
        }
        catch (ElementIdsExhaustedException)
        {
            exceptionThrown = true;
        }

        exceptionThrown.Should().BeTrue();
    }
Example #4
0
    public void GetId_ShouldWrapAround()
    {
        var repository = new ElementByIdRepository();
        var generator  = new RepositoryBasedElementIdGenerator(repository);

        var first        = generator.GetId();
        var firstElement = new DummyElement()
        {
            Id = first
        };

        repository.Add(firstElement);

        for (int i = 0; i < ElementConstants.MaxElementId - 2; i++)
        {
            var id = generator.GetId();
            repository.Add(new DummyElement()
            {
                Id = id
            });
        }

        repository.Remove(firstElement);

        var finalId = generator.GetId();

        finalId.Should().Be(first);
    }
Example #5
0
    public void GetId_ShouldReturnUnusedId()
    {
        var repository   = new ElementByIdRepository();
        var dummyElement = new DummyElement()
        {
            Id = 0
        };

        repository.Add(dummyElement);
        var generator = new RepositoryBasedElementIdGenerator(repository);

        var id = generator.GetId();

        id.Should().NotBe(dummyElement.Id);
    }
Example #6
0
    public void GetId_ShouldReturnUniqueIds()
    {
        var repository = new ElementByIdRepository();
        var generator  = new RepositoryBasedElementIdGenerator(repository);

        var first = generator.GetId();

        repository.Add(new DummyElement()
        {
            Id = first
        });

        var second = generator.GetId();

        repository.Add(new DummyElement()
        {
            Id = second
        });

        first.Should().NotBe(second);
    }