文件
mashangyoujiu/_ai_archive/scripts/test_cross_day_time.php

80 行
3.3 KiB
PHP

<?php
// 测试跨天时间范围功能
require_once 'Application/Common/Business/Store.class.php';
use Common\Business\Store;
// 创建Store实例
$store = new Store();
// 使用反射来访问私有方法进行测试
$reflection = new ReflectionClass($store);
// 获取私有方法
$handleTimeMethod = $reflection->getMethod('handleTime');
$handleTimeMethod->setAccessible(true);
$isTimeConflictMethod = $reflection->getMethod('isTimeConflict');
$isTimeConflictMethod->setAccessible(true);
$isCrossDayMethod = $reflection->getMethod('isCrossDay');
$isCrossDayMethod->setAccessible(true);
echo "=== 跨天时间范围功能测试 ===\n\n";
// 测试1: 正常时间段(不跨天)
echo "测试1: 正常时间段\n";
$normalTime = [['08:00', '18:00']];
$result1 = $handleTimeMethod->invoke($store, $normalTime);
echo "输入: " . json_encode($normalTime) . "\n";
echo "结果: " . json_encode($result1) . "\n\n";
// 测试2: 跨天时间段
echo "测试2: 跨天时间段\n";
$crossDayTime = [['22:00', '02:00']];
$result2 = $handleTimeMethod->invoke($store, $crossDayTime);
echo "输入: " . json_encode($crossDayTime) . "\n";
echo "结果: " . json_encode($result2) . "\n\n";
// 测试3: 多个时间段,包含跨天
echo "测试3: 多个时间段(包含跨天)\n";
$multipleTime = [['08:00', '12:00'], ['22:00', '02:00']];
$result3 = $handleTimeMethod->invoke($store, $multipleTime);
echo "输入: " . json_encode($multipleTime) . "\n";
echo "结果: " . json_encode($result3) . "\n\n";
// 测试4: 冲突的时间段
echo "测试4: 冲突的时间段\n";
$conflictTime = [['08:00', '12:00'], ['10:00', '14:00']];
$result4 = $handleTimeMethod->invoke($store, $conflictTime);
echo "输入: " . json_encode($conflictTime) . "\n";
echo "结果: " . json_encode($result4) . "\n\n";
// 测试5: 跨天时间段冲突
echo "测试5: 跨天时间段冲突\n";
$crossDayConflict = [['22:00', '02:00'], ['01:00', '05:00']];
$result5 = $handleTimeMethod->invoke($store, $crossDayConflict);
echo "输入: " . json_encode($crossDayConflict) . "\n";
echo "结果: " . json_encode($result5) . "\n\n";
// 测试6: 判断是否跨天
echo "测试6: 判断是否跨天\n";
$isCrossDay1 = $isCrossDayMethod->invoke($store, '08:00', '18:00');
$isCrossDay2 = $isCrossDayMethod->invoke($store, '22:00', '02:00');
echo "08:00-18:00 是否跨天: " . ($isCrossDay1 ? 'true' : 'false') . "\n";
echo "22:00-02:00 是否跨天: " . ($isCrossDay2 ? 'true' : 'false') . "\n\n";
// 测试7: 时间冲突检测
echo "测试7: 时间冲突检测\n";
$conflict1 = $isTimeConflictMethod->invoke($store, ['08:00', '12:00'], ['10:00', '14:00']);
$conflict2 = $isTimeConflictMethod->invoke($store, ['08:00', '12:00'], ['13:00', '17:00']);
$conflict3 = $isTimeConflictMethod->invoke($store, ['22:00', '02:00'], ['01:00', '05:00']);
$conflict4 = $isTimeConflictMethod->invoke($store, ['22:00', '02:00'], ['03:00', '07:00']);
echo "08:00-12:00 与 10:00-14:00 冲突: " . ($conflict1 ? 'true' : 'false') . "\n";
echo "08:00-12:00 与 13:00-17:00 冲突: " . ($conflict2 ? 'true' : 'false') . "\n";
echo "22:00-02:00 与 01:00-05:00 冲突: " . ($conflict3 ? 'true' : 'false') . "\n";
echo "22:00-02:00 与 03:00-07:00 冲突: " . ($conflict4 ? 'true' : 'false') . "\n\n";
echo "=== 测试完成 ===\n";
?>