# ============================================================ # 综合测试脚本:CRUD + 边界 + 数据范围 + 崩溃检测 # ============================================================ # 1. 基础 Patient CRUD echo "=== 1. PATIENT BASIC CRUD ===" patient add p001 zhangsan 30 male 1234567890 patient add p002 lisi 40 female 0987654321 patient list echo "" # 2. Patient Update - 基本更新(不改状态) echo "=== 2. PATIENT UPDATE BASIC ===" patient update p001 zhangsan_updated 31 male 1234567890 patient list echo "" # 3. Patient Update - 修改到 Inpatient(这是刚修复的功能) echo "=== 3. PATIENT UPDATE STATUS -> INPATIENT ===" patient update p001 zhangsan_v2 32 male 1234567890 Inpatient patient list echo "" # 4. Patient Update - 修改状态到 Discharged echo "=== 4. PATIENT UPDATE STATUS -> DISCHARGED ===" patient update p002 lisi_discharge 41 female 0987654321 Discharged patient list echo "" # 5. Patient Update - 无效状态(应错) echo "=== 5. PATIENT UPDATE INVALID STATUS (EXPECT ERROR) ===" patient update p001 test 30 male phone InvalidStatus echo "" # 6. Patient 边界测试:负数年龄 echo "=== 6. PATIENT ADD NEGATIVE AGE (EXPECT ERROR) ===" patient add p999 test -5 male phone echo "" # 7. Patient 边界测试:0 岁 echo "=== 7. PATIENT ADD AGE 0 (EXPECT OK) ===" patient add p_age0 baby 0 male phone patient list echo "" # 8. Patient 边界测试:非常大的年龄 echo "=== 8. PATIENT ADD VERY OLD AGE ===" patient add p_age_max testold 150 male phone patient list echo "" # 9. Patient 边界测试:特殊字符名字 echo "=== 9. PATIENT ADD SPECIAL CHARS IN NAME ===" patient add p_special "zhang@san#123" 25 male "123-456-7890" patient list echo "" # 10. Patient 边界测试:空联系方式 echo "=== 10. PATIENT ADD EMPTY CONTACT ===" patient add p_nocont student 20 male "" patient list echo "" # 11. Patient Remove - 正常删除(非住院) echo "=== 11. PATIENT REMOVE OUTPATIENT ===" patient rm p999 echo "" # 12. Patient Remove - 尝试删除不存在的患者(应错) echo "=== 12. PATIENT REMOVE NON-EXISTENT (EXPECT ERROR) ===" patient rm p_not_exist echo "" # 13. Medicine CRUD 基础 echo "=== 13. MEDICINE BASIC CRUD ===" medicine add m001 aspirin Aspirin dep1 100 1.5 medicine add m002 paracetamol Paracetamol dep1 50 2.0 medicine add m003 ibuprofen Ibuprofen dep2 0 3.5 medicine list echo "" # 14. Medicine Update(已支持)- 如果实现了 echo "=== 14. MEDICINE UPDATE TEST ===" # 暂时跳过,看是否有 update 命令 echo "" # 15. Medicine 库存操作:增加 echo "=== 15. MEDICINE STOCK INCREASE ===" medicine stock inc m001 50 medicine list echo "" # 16. Medicine 库存操作:减少 echo "=== 16. MEDICINE STOCK DECREASE ===" medicine stock dec m001 20 medicine list echo "" # 17. Medicine 库存边界:减少超过库存(应失败) echo "=== 17. MEDICINE STOCK DEC OVER LIMIT (EXPECT ERROR) ===" medicine stock dec m001 1000 echo "" # 18. Medicine 库存边界:减为 0 echo "=== 18. MEDICINE STOCK DEC TO ZERO ===" medicine stock dec m001 130 medicine list echo "" # 19. Medicine 库存:0 库存时再减(应失败) echo "=== 19. MEDICINE STOCK DEC FROM ZERO (EXPECT ERROR) ===" medicine stock dec m001 1 echo "" # 20. Medicine 库存:负数增加(应失败或无效) echo "=== 20. MEDICINE STOCK INC NEGATIVE (EXPECT ERROR) ===" medicine stock inc m002 -10 echo "" # 21. Medicine 价格边界:0 价格 echo "=== 21. MEDICINE ADD ZERO PRICE ===" medicine add m_free free_sample FreeVersion dep3 10 0 medicine list echo "" # 22. Medicine 价格边界:非常高的价格 echo "=== 22. MEDICINE ADD VERY HIGH PRICE ===" medicine add m_expensive expensive_drug Gold dep3 5 999999.99 medicine list echo "" # 23. Medicine 搜索:通用名 echo "=== 23. MEDICINE SEARCH GENERIC NAME ===" medicine find aspirin echo "" # 24. Medicine 搜索:商品名 echo "=== 24. MEDICINE SEARCH BRAND NAME ===" medicine find Aspirin echo "" # 25. Medicine 搜索:不存在的药 echo "=== 25. MEDICINE SEARCH NON-EXISTENT ===" medicine find xyz_not_found echo "" # 26. Doctor CRUD echo "=== 26. DOCTOR BASIC CRUD ===" doctor add d001 wangdoctor Cardiology Chief "Mon AM" doctor add d002 liudoctor Neurology Attending "Tue PM" doctor list echo "" # 27. Doctor 特殊字符 echo "=== 27. DOCTOR ADD SPECIAL CHARS ===" doctor add d_special "dr.@wang!" Dept Chief "Any" doctor list echo "" # 28. Doctor 无效职称 echo "=== 28. DOCTOR ADD INVALID TITLE (EXPECT ERROR) ===" doctor add d_bad testdoc dep InvalidTitle "Mon" echo "" # 29. Ward 基础 echo "=== 29. WARD BASIC CRUD ===" ward add w001 Dept1 Normal 10 ward bed add w001 b001 ward bed add w001 b002 ward list echo "" # 30. Ward 床位操作 echo "=== 30. WARD BED OPERATIONS ===" ward list echo "" # 31. Ward 超大床位数 echo "=== 31. WARD ADD MAX BEDS ===" ward add w_big Dept2 ICU 1000 ward list echo "" # 32. Ward 0 床位数(应失败或处理) echo "=== 32. WARD ADD ZERO BEDS (CHECK BEHAVIOR) ===" ward add w_zero Dept3 Normal 0 echo "" # 33. 交互测试:患者入院 echo "=== 33. PATIENT ADMIT TO WARD ===" patient admit w001 p001 patient list echo "" # 34. 查看 Ward 状态 echo "=== 34. WARD STATUS ===" ward list echo "" # 35. 保存所有数据 echo "=== 35. SAVE ALL DATA ===" doctor save patient save medicine save ward save echo "" # 36. 清空并重新加载 echo "=== 36. LOAD ALL DATA ===" doctor load patient load medicine load ward load echo "" # 37. 重新查询验证数据完整性 echo "=== 37. VERIFY RELOADED DATA ===" patient list medicine list echo "" # 38. 长字符串测试 echo "=== 38. VERY LONG STRING TEST ===" patient add p_long "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 25 male "phone" echo "" # 39. 特殊 Unicode 字符(如果支持) echo "=== 39. UNICODE TEST ===" patient add p_unicode 张龙 30 男 "1234567890" patient find 张 echo "" # 40. 结束 echo "=== 40. END TEST ===" exit