<?php 
 
/* 
 * This file is part of Chevere. 
 * 
 * (c) Rodolfo Berrios <[email protected]> 
 * 
 * For the full copyright and license information, please view the LICENSE 
 * file that was distributed with this source code. 
 */ 
 
declare(strict_types=1); 
 
namespace Chevere\Tests; 
 
use PHPUnit\Framework\TestCase; 
use function Chevere\Parameter\float; 
 
final class FunctionsFloatTest extends TestCase 
{ 
    public function testFloat(): void 
    { 
        $parameter = float(); 
        $this->assertSame('', $parameter->description()); 
        $this->assertSame(null, $parameter->default()); 
        $this->assertSame(null, $parameter->min()); 
        $this->assertSame(null, $parameter->max()); 
        $this->assertSame([], $parameter->accept()); 
        $this->assertSame([], $parameter->reject()); 
    } 
 
    public function testFloatOptions(): void 
    { 
        $description = 'test'; 
        $default = 5.0; 
        $parameter = float( 
            description: $description, 
            default: $default, 
            min: -100, 
            max: 100, 
        ); 
        $this->assertSame($description, $parameter->description()); 
        $this->assertSame($default, $parameter->default()); 
        $this->assertSame(-100.0, $parameter->min()); 
        $this->assertSame(100.0, $parameter->max()); 
        $parameter = float(accept: [0, 1]); 
        $this->assertSame([0.0, 1.0], $parameter->accept()); 
        $parameter = float(reject: [0, 1]); 
        $this->assertSame([0.0, 1.0], $parameter->reject()); 
    } 
 
    public function testAssertFloat(): void 
    { 
        $parameter = float(); 
        $this->assertSame(0.0, $parameter(0)); 
        $this->assertSame(0.0, $parameter(0.0)); 
    } 
} 
 
 |