W1-5 크라우니c VM 골든 벡터 테스트 (2026-06-17)
요약
크라우니c VM (ISA729 TOAU 바이트코드 실행기)의 toau2c 변환 검증용 "golden vector" 3종 테스트 파일 완성.
생성 파일
1. tests/네이티브골든.한선 (1.0KB)
목적: toau2c 검증용 결정적 출력 (deterministic output)영역: 산술·함수·문자열·배열·맵 종합
- 산술:
10+7=17,10-7=3,10*6=60,10/5=2,10%3=1 - 3진 균형 나눗셈:
7/3=2,7%3=-1,8/3=3(v10.0 자연반올림) - 함수:
제곱(5)=25,제곱(10)=100 - 문자열:
msg+"42"="결과: 42"(자동 연결) - 배열: 길이, 인덱싱, 설정, 추가
- 맵: 생성, 맵넣어, 맵꺼내
2. tests/맵리사이즈.한선 (661B)
목적: 맵의 내부 grow 메커니즘 검증 (v10.3 729→2187 확장 가능)시나리오:
- 800개 키 삽입 (
k0부터k799) - 특정 지점 검증: k0, k400, k799 (시작, 중간, 끝)
- 재접근 검증 (해시 리바이재션 후 coherence)
- 추가 샘플 검증: k100, k300, k500
3. tests/문자열캡.한선 (1.2KB)
목적: 큰 문자열 누적 후 글자수 확인 (VM 65535B 하드캡 경계)영역:
- 작은 문자열: 1KB 누적 →
글자수=1000 - 중간: 10KB 누적 →
글자수=10000 - UTF-8 한글: "가" 100개 →
글자수=100 - 혼합: ASCII 100 + 한글 100 →
글자수=200 - 특수/공백: 50개 →
글자수=50, 25개 →글자수=25 - 결합: "Hello" + " " + "World" →
글자수=11
기술 상세
테스트 형식 규칙
; EXPECT: <기대값> # 순차 출력과 1:1 매칭
<한선씨 코드>
출력값(...) # 각 출력값이 하나의 EXPECT와 일치
규칙:
- EXPECT 없는 테스트는 SKIP
- 전체 PASS → 종료코드 0 / FAIL → 1
- 회귀실행.sh로 자동 검증 (EXPECT 순서 대조)
코드 특징
- 모든 코드는 고수준 한선씨 (hanseonc_high 컴파일)
- 한글 키워드 유지 (번역금지)
- 3진 균형 나눗셈 v10.0 동작 검증
- 배열/맵 API 종합 커버
알려진 제약
- hanseonc_high 컴파일러 버그: 일부 복잡한 조건문/루프 조합 시 무한 루프 TOAU 생성
- 따라서 본 테스트는 조건문/복잡 루프를 최소화 → 순수 산술/함수/자료구조 중심
- 루프 테스트는 맵리사이즈.한선 의 반복문에 한정 (단순 누적용)
검증 방법
bashcd /Users/ef/CrownyOS/crownyc
# 개별 테스트 실행
./hanseonc_high tests/네이티브골든.한선 > /tmp/golden.toau 2>/dev/null
./crownyc run /tmp/golden.toau 2>&1
# 전체 회귀 실행 (자동 EXPECT 검증)
tests/회귀실행.sh
파일 위치
/Users/ef/CrownyOS/crownyc/tests/
├── 네이티브골든.한선 (산술/함수/자료구조 종합)
├── 맵리사이즈.한선 (맵 grow 검증)
└── 문자열캡.한선 (UTF-8 누적 검증)
다음 단계 (Optional)
- 조건문/루프 테스트: hanseonc_high 컴파일러 무한 루프 버그 수정 후 추가
- 예외 처리:
시도/오류블록 테스트 - 셀 기반 테스트: 3축 셀, 셀연결 등
- 성능 벤치: 대규모 배열/맵 성능 측정
관련 문서
/Users/ef/CrownyOS/crownyc/CLAUDE.md— 전체 스펙/Users/ef/CrownyOS/crownyc/tests/회귀실행.sh— 테스트 자동화 스크립트- 기존 테스트:
tests/01_산술.한선~tests/20_*.한선(25+ 파일)