namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
class Calculator
{
{
{
return $a +
}
}
public static function divide($a,
{
{
return $a /
}
}
class CalculatorTest extends TestCase
{
// Positive test case for add function
public function testTwoPlusTwo(): void
{
$this->assertEquals(4, Calculator::add(2, 2));
}
// Positive test case for divide function
public function testTwoDivideByTwo(): void
{
$this->assertEquals(1, Calculator::divide(2, 2));
}
// Negative test case for add function
public function testTwoPlusOne(): void
{
$this->assertNotEquals(4, Calculator::add("a2a", "s1a"));
}
// Negative test case for divide function
public function testOneDivideByZero(): void
{
$this->assertNotEquals(1, Calculator::divide(1, 0));
// We cannot expect an exception for the case of 1/0 as the Calculator class does not throw an exception for this case, but instead returns infinity and issues a warning.
// Therefore, we can use the below test case to check if the result of dividing by zero is finite or not.
$this->assertFalse(is_finite(Calculator::divide(1, 0)));
}
}