<?php

namespace App\Tests\Shared;

use App\Shared\Util\PersianText;
use PHPUnit\Framework\TestCase;

class PersianTextTest extends TestCase
{
    public function testArabicYehAndKafAreUnified(): void
    {
        $this->assertTrue(PersianText::sameName("علي اكبري", 'علی اکبری'));
    }

    public function testHalfSpaceAndExtraWhitespace(): void
    {
        $this->assertTrue(PersianText::sameName("محمد\u{200C}رضا  کریمی ", 'محمد رضا کریمی'));
    }

    public function testPersianAndArabicDigits(): void
    {
        $this->assertSame('1371/1/1', PersianText::normalize('۱۳۷۱/۱/۱'));
        $this->assertSame('0912', PersianText::normalize('٠٩١٢'));
    }

    public function testStripDoctorTitle(): void
    {
        $this->assertSame('فرخنده حسینی', PersianText::stripDoctorTitle('دکتر فرخنده حسینی'));
        $this->assertSame('فرخنده حسینی', PersianText::stripDoctorTitle('  دکتر  فرخنده حسینی '));
        $this->assertSame('فرخنده حسینی', PersianText::stripDoctorTitle('فرخنده حسینی'));
        $this->assertSame('صفورا حجازی نیا', PersianText::stripDoctorTitle('دکتر صفورا حجازی نیا'));
        // پیشوند متوالی و کافِ عربی
        $this->assertSame('صفورا حجازی نیا', PersianText::stripDoctorTitle('دکتر دکتر صفورا حجازی نیا'));
        $this->assertSame('علی اکبری', PersianText::stripDoctorTitle('دكتر علي اكبري'));
    }

    public function testDifferentNamesStayDifferent(): void
    {
        $this->assertFalse(PersianText::sameName('علی اکبری', 'ولی اکبری'));
    }
}
