diff --git a/app/Services/ConfigService.php b/app/Services/ConfigService.php index 25aef4b..d06e4b1 100644 --- a/app/Services/ConfigService.php +++ b/app/Services/ConfigService.php @@ -31,19 +31,13 @@ class ConfigService */ public const STORED_PRICE_SOURCES = ['database_last']; - /** - * حداکثر انحراف مجاز مظنه نسبت به آخرین قیمت معتبر DB. - * پرش اشتباه provider (مثل ۱۶۸M ماندهٔ montzar روی مظنهٔ ~۲۲۰M) را رد می‌کند. - */ - public const MAX_QUOTE_DEVIATION_RATIO = 0.15; - public function Config($name) { return $this->get($name, false); } /** - * آخرین قیمت ذخیره‌شده در جدول prices — مرجع سلامت مظنهٔ زنده. + * آخرین قیمت ذخیره‌شده در جدول prices. */ public function referenceQuotePrice(): float { @@ -52,21 +46,10 @@ class ConfigService return $last !== null ? (float) $last : 0.0; } - /** - * مظنهٔ زنده وقتی خیلی از آخرین قیمت DB فاصله دارد قابل اتکا نیست (ماندهٔ provider اشتباه). - */ + /** مظنهٔ مثبت قابل استفاده است — محدودیت انحراف نسبت به DB برداشته شد. */ public function isPlausibleQuotePrice(float $candidate, ?float $reference = null): bool { - if ($candidate <= 0) { - return false; - } - - $reference = $reference ?? $this->referenceQuotePrice(); - if ($reference <= 0) { - return true; - } - - return abs($candidate - $reference) / $reference <= self::MAX_QUOTE_DEVIATION_RATIO; + return $candidate > 0; } /** diff --git a/tests/Unit/QuotePricePlausibilityTest.php b/tests/Unit/QuotePricePlausibilityTest.php index 995f1f9..ca862b5 100644 --- a/tests/Unit/QuotePricePlausibilityTest.php +++ b/tests/Unit/QuotePricePlausibilityTest.php @@ -7,30 +7,13 @@ use PHPUnit\Framework\TestCase; class QuotePricePlausibilityTest extends TestCase { - public function test_rejects_stale_montzar_jump_against_reference(): void + public function test_accepts_any_positive_price(): void { - $config = new class extends ConfigService { - public function referenceQuotePrice(): float - { - return 223_260_000.0; - } - }; - - $this->assertFalse($config->isPlausibleQuotePrice(168_336_410.0)); - $this->assertTrue($config->isPlausibleQuotePrice(222_010_000.0)); - $this->assertTrue($config->isPlausibleQuotePrice(223_260_000.0)); - } - - public function test_accepts_any_positive_when_no_reference(): void - { - $config = new class extends ConfigService { - public function referenceQuotePrice(): float - { - return 0.0; - } - }; + $config = new ConfigService(); $this->assertTrue($config->isPlausibleQuotePrice(168_336_410.0)); + $this->assertTrue($config->isPlausibleQuotePrice(222_010_000.0)); $this->assertFalse($config->isPlausibleQuotePrice(0.0)); + $this->assertFalse($config->isPlausibleQuotePrice(-1.0)); } }