60 lines
2.6 KiB
PHP
60 lines
2.6 KiB
PHP
<?php
|
|
require 'vendor/autoload.php';
|
|
$app = require_once 'bootstrap/app.php';
|
|
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
|
|
|
|
use App\Http\Controllers\Api\SAWController;
|
|
use Illuminate\Http\Request;
|
|
|
|
$controller = new SAWController();
|
|
|
|
// Test Case 1: Cheapest budget (harga highest weight) + some facilities
|
|
echo "=== Test Case 1: Budget termurah (bobot: 70, 10, 0, 20) ===\n";
|
|
$request1 = Request::create('/api/saw/calculate/kontrakan', 'POST', [
|
|
'bobot_harga' => 70,
|
|
'bobot_jarak' => 10,
|
|
'bobot_jumlah_kamar' => 0,
|
|
'bobot_fasilitas' => 20,
|
|
]);
|
|
$response1 = $controller->calculateKontrakan($request1);
|
|
$data1 = json_decode($response1->getContent(), true);
|
|
echo "Success: " . ($data1['success'] ? 'YES' : 'NO') . "\n";
|
|
echo "Results: " . (isset($data1['data']['hasil']) ? count($data1['data']['hasil']) : 0) . " items\n\n";
|
|
|
|
// Test Case 2: Balanced preference
|
|
echo "=== Test Case 2: Balanced (bobot: 40, 20, 20, 20) ===\n";
|
|
$request2 = Request::create('/api/saw/calculate/kontrakan', 'POST', [
|
|
'bobot_harga' => 40,
|
|
'bobot_jarak' => 20,
|
|
'bobot_jumlah_kamar' => 20,
|
|
'bobot_fasilitas' => 20,
|
|
]);
|
|
$response2 = $controller->calculateKontrakan($request2);
|
|
$data2 = json_decode($response2->getContent(), true);
|
|
echo "Success: " . ($data2['success'] ? 'YES' : 'NO') . "\n";
|
|
echo "Results: " . (isset($data2['data']['hasil']) ? count($data2['data']['hasil']) : 0) . " items\n";
|
|
if (isset($data2['data']['hasil'][0])) {
|
|
echo "Top result: " . $data2['data']['hasil'][0]['nama'] . " (score: " . round($data2['data']['hasil'][0]['skor'], 4) . ")\n";
|
|
}
|
|
echo "\n";
|
|
|
|
// Test Case 3: Facilities important
|
|
echo "=== Test Case 3: Facilities focused (bobot: 30, 20, 10, 40) ===\n";
|
|
$request3 = Request::create('/api/saw/calculate/kontrakan', 'POST', [
|
|
'bobot_harga' => 30,
|
|
'bobot_jarak' => 20,
|
|
'bobot_jumlah_kamar' => 10,
|
|
'bobot_fasilitas' => 40,
|
|
]);
|
|
$response3 = $controller->calculateKontrakan($request3);
|
|
$data3 = json_decode($response3->getContent(), true);
|
|
echo "Success: " . ($data3['success'] ? 'YES' : 'NO') . "\n";
|
|
echo "Results: " . (isset($data3['data']['hasil']) ? count($data3['data']['hasil']) : 0) . " items\n\n";
|
|
|
|
// Summary
|
|
echo "=== SUMMARY ===\n";
|
|
echo "All test cases should return > 0 results.\n";
|
|
echo "Case 1 (budget focused): " . (isset($data1['data']['hasil']) && count($data1['data']['hasil']) > 0 ? "✓ PASS" : "✗ FAIL") . "\n";
|
|
echo "Case 2 (balanced): " . (isset($data2['data']['hasil']) && count($data2['data']['hasil']) > 0 ? "✓ PASS" : "✗ FAIL") . "\n";
|
|
echo "Case 3 (facilities): " . (isset($data3['data']['hasil']) && count($data3['data']['hasil']) > 0 ? "✓ PASS" : "✗ FAIL") . "\n";
|