summaryrefslogtreecommitdiff
path: root/tests/World/BoidTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/World/BoidTest.php')
-rw-r--r--tests/World/BoidTest.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/World/BoidTest.php b/tests/World/BoidTest.php
new file mode 100644
index 0000000..1c7202d
--- /dev/null
+++ b/tests/World/BoidTest.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Tests\World;
+
+use App\World\Boid;
+use App\World\World;
+use PHPUnit\Framework\TestCase;
+
+class BoidTest extends TestCase
+{
+ public function testBoidConstruction()
+ {
+ $boid = new Boid(5, 1, 2, 'boid');
+
+ $this->assertEquals(5, $boid->radius());
+ $this->assertEquals([1, 2], $boid->position());
+ $this->assertEquals('boid', $boid->name());
+
+ $boid = new Boid(5, 1, 2);
+ $this->assertEquals(5, $boid->radius());
+ $this->assertEquals([1, 2], $boid->position());
+ $this->assertTrue(is_string($boid->name()));
+ $this->assertTrue(strpos($boid->name(), 'boid') === 0);
+ }
+
+ public function testBoidWorldCollision()
+ {
+ $world = new World(200, 200);
+
+ $boid = new Boid(5, 10, 10);
+ $this->assertEquals(false, $boid->isCollisionWithWorld($world->width(), $world->height(), 0, 0));
+
+ $boid = new Boid(5, 0, 0);
+ $this->assertEquals(true, $boid->isCollisionWithWorld($world->width(), $world->height(), 0, 0));
+
+ $boid = new Boid(5, -100, 100);
+ $this->assertEquals(true, $boid->isCollisionWithWorld($world->width(), $world->height(), 0, 0));
+
+ $boid = new Boid(5, 100, -100);
+ $this->assertEquals(true, $boid->isCollisionWithWorld($world->width(), $world->height(), 0, 0));
+
+ $boid = new Boid(5, 200, 200);
+ $this->assertEquals(true, $boid->isCollisionWithWorld($world->width(), $world->height(), 0, 0));
+ }
+}