Files
Pier_v1/RAG/design-model-box-sample_2/tools/test_inner_wall_publication.py
T
ahnyongjooandClaude Sonnet 5.5 964a841de1 chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합
- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 11:20:18 +09:00

36 lines
1.9 KiB
Python

import copy
import unittest
from tools.replay_inner_wall_stations import validate_candidate
class InnerWallPublication(unittest.TestCase):
def candidate(self):
return dict(count=2, schedule_count=1,
instance_paths_m=[[[0, 0, 0], [0, 0, 1]], [[1, 0, 0], [1, 0, 1]]],
fabrication_measurement=dict(fixed_length_pass=True, count_pass=False),
quantity_comparison=dict(applied_authority='placement_drawing',
status='schedule_review_required', drawing_count=2, schedule_count=1),
cad_cycle_assembly=dict(wall_station_sources=[dict(selected_stations_mm=[0, 1000])]))
def test_review_requires_explicit_policy(self):
with self.assertRaises(ValueError): validate_candidate(self.candidate(), 0)
def test_review_does_not_alter_or_approve_quantity(self):
group = self.candidate(); before = copy.deepcopy(group)
validate_candidate(group, 0, allow_drawing_quantity_review=True)
self.assertEqual(group, before)
self.assertFalse(group['fabrication_measurement']['count_pass'])
def test_review_never_bypasses_geometry_or_missing_evidence(self):
for failure in ('outside', 'length', 'duplicate', 'source', 'false_approval'):
group = self.candidate(); outside = int(failure == 'outside')
if failure == 'length': group['fabrication_measurement']['fixed_length_pass'] = False
if failure == 'duplicate': group['instance_paths_m'][1] = group['instance_paths_m'][0]
if failure == 'source': group['cad_cycle_assembly']['wall_station_sources'] = []
if failure == 'false_approval': group['fabrication_measurement']['count_pass'] = True
with self.subTest(failure=failure), self.assertRaises(ValueError):
validate_candidate(group, outside, allow_drawing_quantity_review=True)
if __name__ == '__main__': unittest.main()