Ejemplo n.º 1
0
        public async Task PropagateTestAsync(string type, int x, int y, int expectedCount)
        {
            var propagator = new PropagateManager(PropagateManager.DefaultNeighborsGetter);
            var drops      = new Dictionary <WaterDrop, PointInt> {
                { new WaterDrop(0.1), new PointInt(x, y) }
            };

            var newDrops = await propagator.PropagateAsync(_maps[type], drops);

            Assert.Equal(expectedCount, newDrops.Count);
        }
Ejemplo n.º 2
0
        public void PropagateToPitSpeedTest()
        {
            var propagator = new PropagateManager(PropagateManager.DefaultNeighborsGetter);
            var drops      = new Dictionary <WaterDrop, PointInt> {
                { new WaterDrop(0.1), new PointInt(1, 2) }
            };

            var newDrop = propagator.Propagate(_maps["pit"], drops).Single().Key;

            Assert.True(newDrop.Speed.Length > 0);
            Assert.True(Vector.IsCollinear(newDrop.Speed, new Vector(1, 0)));
        }
Ejemplo n.º 3
0
        public async Task StepAsync()
        {
            var propagator = new PropagateManager(PropagateManager.DefaultNeighborsGetter);
            var merger     = new MergeManager();
            var absorber   = new AbsorptionManager(AbsorptionManager.DefaultAbsorbtion);
            var context    = new WaterContext(Maps["plato"], propagator, merger, absorber);

            for (var i = 0; i < 10; i++)
            {
                await context.StepAsync();
            }
        }
Ejemplo n.º 4
0
        public async Task PropagateAsyncCancelTest()
        {
            var propagator = new PropagateManager(PropagateManager.DefaultNeighborsGetter);
            var drops      = new Dictionary <WaterDrop, PointInt> {
                { new WaterDrop(0.1), new PointInt(2, 2) }
            };

            var cts = new CancellationTokenSource();

            cts.Cancel();

            await Assert.ThrowsAnyAsync <OperationCanceledException>(() => propagator.PropagateAsync(_maps["plato"], drops, cts.Token));
        }