import sys import os import random # Add backend to path sys.path.append(os.path.abspath("/Users/hissin/测试/25-cxsj-final/backend")) from problems.max_subarray.problem import MaxSubarrayProblem from problems.interval_scheduling.problem import IntervalSchedulingProblem from problems.n_queens.problem import NQueensProblem from problems.knapsack.problem import KnapsackProblem def test_max_subarray(): print("\nTesting Max Subarray...") prob = MaxSubarrayProblem() case = prob.generate_case(size=10) res = prob.solve(case, "kadane") print(f"Max Subarray Result: {res['result']}") assert prob.verify(case, res['result']) print("Max Subarray Passed!") def test_interval_scheduling(): print("\nTesting Interval Scheduling...") prob = IntervalSchedulingProblem() case = prob.generate_case(size=10) res = prob.solve(case, "greedy") print(f"Interval Scheduling Count: {res['result_count']}") assert prob.verify(case, res) print("Interval Scheduling Passed!") def test_n_queens(): print("\nTesting N-Queens...") prob = NQueensProblem() case = prob.generate_case(n=8) res = prob.solve(case, "backtracking") print(f"N-Queens (N=8) Solutions: {res['solution_count']}") assert res['solution_count'] == 92 print("N-Queens Passed!") def test_knapsack(): print("\nTesting Knapsack...") prob = KnapsackProblem() case = prob.generate_case(num_items=10, max_weight=20, max_value=100) res_dp = prob.solve(case, "dp") res_back = prob.solve(case, "backtracking") print(f"Knapsack DP Value: {res_dp['max_value']}") print(f"Knapsack Backtracking Value: {res_back['max_value']}") assert res_dp['max_value'] == res_back['max_value'] assert prob.verify(case, res_dp) print("Knapsack Passed!") if __name__ == "__main__": test_max_subarray() test_interval_scheduling() test_n_queens() test_knapsack()