cii-text-analysis/vendor/rubix/ml/tests/ReportTest.php
Jéremy Munsch f68d2ac333
premier poc
2026-02-11 08:24:04 +01:00

84 lines
1.8 KiB
PHP

<?php
namespace Rubix\ML\Tests;
use Rubix\ML\Report;
use Rubix\ML\Encoding;
use PHPUnit\Framework\TestCase;
use IteratorAggregate;
use JsonSerializable;
use ArrayAccess;
use Stringable;
/**
* @group Results
* @covers \Rubix\ML\Report
*/
class ReportTest extends TestCase
{
/**
* @var \Rubix\ML\Report
*/
protected $results;
/**
* @before
*/
protected function setUp() : void
{
$this->results = new Report([
'accuracy' => 0.9,
'f1_score' => 0.75,
'cardinality' => 5,
]);
}
/**
* @test
*/
public function build() : void
{
$this->assertInstanceOf(Report::class, $this->results);
$this->assertInstanceOf(ArrayAccess::class, $this->results);
$this->assertInstanceOf(JsonSerializable::class, $this->results);
$this->assertInstanceOf(IteratorAggregate::class, $this->results);
$this->assertInstanceOf(Stringable::class, $this->results);
}
/**
* @test
*/
public function toArray() : void
{
$expected = [
'accuracy' => 0.9,
'f1_score' => 0.75,
'cardinality' => 5,
];
$this->assertEquals($expected, $this->results->toArray());
}
/**
* @test
*/
public function toJSON() : void
{
$expected = '{"accuracy":0.9,"f1_score":0.75,"cardinality":5}';
$encoding = $this->results->toJSON(false);
$this->assertInstanceOf(Encoding::class, $encoding);
$this->assertEquals($expected, (string) $encoding);
}
/**
* @test
*/
public function arrayAccess() : void
{
$this->assertEquals(0.9, $this->results['accuracy']);
$this->assertEquals(0.75, $this->results['f1_score']);
$this->assertEquals(5, $this->results['cardinality']);
}
}