--- /dev/null
+<?php
+
+namespace Tests\Unit\Models;
+
+use App\Models\ChatLib;
+use PHPUnit\Framework\TestCase;
+
+class ChatLibTest extends TestCase {
+
+ public function test_binary_search() {
+ $options = [
+ ['a', 0, 2],
+ ['b', 2, 3],
+ ['c', 3, 6],
+ ];
+
+ $this->assertEquals('a', ChatLib::search($options, 0)[0]);
+ $this->assertEquals('a', ChatLib::search($options, 1)[0]);
+ $this->assertEquals('b', ChatLib::search($options, 2)[0]);
+ $this->assertEquals('c', ChatLib::search($options, 3)[0]);
+ $this->assertEquals('c', ChatLib::search($options, 4)[0]);
+ $this->assertEquals('c', ChatLib::search($options, 5)[0]);
+
+ $this->assertEquals('a', ChatLib::search($options, -1)[0]);
+ $this->assertEquals('c', ChatLib::search($options, 6)[0]);
+ }
+
+}