diff --git a/A00_Common/spreadsheet/spreadsheet_func_help.ts b/A00_Common/spreadsheet/spreadsheet_func_help.ts index 21e6d260..a304e2d9 100644 --- a/A00_Common/spreadsheet/spreadsheet_func_help.ts +++ b/A00_Common/spreadsheet/spreadsheet_func_help.ts @@ -1,6 +1,7 @@ /* ============================================================================= - * spreadsheet_func_help.ts (2단계 · 주인 sub_laptop_1) - * 함수 자동 완성 목록 · 인자 도움말 — 1단계 함수 48 개(`spreadsheet_types.ts` 머리 「1단계 함수」) + * spreadsheet_func_help.ts (2단계 · 주인 sub_laptop_1 · 2단계 묶음은 B 가 대신 고침 2026-09-27) + * 함수 자동 완성 목록 · 인자 도움말 — 1단계 함수 48 개(`spreadsheet_types.ts` 머리 「1단계 함수」) + + * B 의 2단계 묶음(`spreadsheet_functions.ts` 의 `FUNC_HELP_BATCH2` · `FUNC_HELP_BATCH3`)을 이어 붙임. * 이름 · 인자 모양 · 한 줄 뜻. B `spreadsheet_functions.ts`(실제 풀이)와는 따로 — 이 표는 화면 도움말 전용 * 정적 자료라 B 가 아직 없어도 씀. B 가 완성돼도 이름 목록이 갈리지 않게 이 표를 그대로 둠. * @@ -8,6 +9,8 @@ * `(` 를 친 뒤엔 `funcHelp(name)` 로 인자 도움말 풍선을 씀(지금 몇 번째 인자인지는 D 가 콤마를 세어 넘김). * ========================================================================== */ +import { FUNC_HELP_BATCH2, FUNC_HELP_BATCH3 } from "./spreadsheet_functions"; + export interface FuncHelp { 이름: string; /** 인자 모양 — 대괄호는 생략 가능 */ @@ -72,6 +75,8 @@ const TABLE: FuncHelp[] = [ { 이름: "COUNTA", 꼴: "COUNTA(값1, [값2], …)", 뜻: "비어 있지 않은 칸 개수" }, { 이름: "COUNTIF", 꼴: "COUNTIF(범위, 조건)", 뜻: "조건에 맞는 칸 개수" }, { 이름: "SUMIF", 꼴: "SUMIF(범위, 조건, [더할범위])", 뜻: "조건에 맞는 칸(또는 짝 칸)의 합" }, + ...FUNC_HELP_BATCH2, + ...FUNC_HELP_BATCH3, ]; const BY_NAME = new Map(TABLE.map((f) => [f.이름, f])); @@ -88,7 +93,7 @@ export function funcHelp(name: string): FuncHelp | null { return BY_NAME.get(name.toUpperCase()) ?? null; } -/** 1단계 함수 48 개 다 있는지(시험용) */ +/** 아는 함수 전부 개수(1단계 48 + 2단계 묶음 · 시험용) */ export function knownFunctionCount(): number { return TABLE.length; } diff --git a/resources/tester/spreadsheet/test_stage2_func_help.ts b/resources/tester/spreadsheet/test_stage2_func_help.ts index 4a21be84..58c18cc1 100644 --- a/resources/tester/spreadsheet/test_stage2_func_help.ts +++ b/resources/tester/spreadsheet/test_stage2_func_help.ts @@ -9,7 +9,7 @@ import { } from "../../../A00_Common/spreadsheet/spreadsheet_func_help.ts"; import { assertEqual } from "./test_stage2_helpers.ts"; -assertEqual(knownFunctionCount(), 48, "1단계 함수 48 개 다 있음"); +assertEqual(knownFunctionCount(), 105, "1단계 48 + B 2단계 묶음(57) 다 있음"); assertEqual( suggestFunctions("ROU").map((f) => f.이름), @@ -44,5 +44,26 @@ const 실무13 = [ ]; for (const name of 실무13) assertEqual(funcHelp(name) !== null, true, `실무 함수 ${name} 있음`); +// B 2단계 묶음(FUNC_HELP_BATCH2 · 3)이 자동 완성에 뜨는지(2026-09-27 — 자동 완성에 안 뜨던 것 고침) +const 이단계묶음 = [ + "SUMIFS", + "XLOOKUP", + "TEXTJOIN", + "ISNUMBER", + "DATE", + "MEDIAN", + "RANK.EQ", + "TIME", +]; +for (const name of 이단계묶음) + assertEqual(funcHelp(name) !== null, true, `2단계 함수 ${name} 있음`); +assertEqual( + suggestFunctions("SUMIF") + .map((f) => f.이름) + .sort(), + ["SUMIF", "SUMIFS"], + "SUMIFS 도 SUMIF 접두사 자동 완성에 뜸", +); + if (process.exitCode) process.exit(process.exitCode); console.log("spreadsheet_func_help 시험 끝");