From 0756bf12d10cf1b7f78c571de0a9ad69cbaeb7ca Mon Sep 17 00:00:00 2001
From: curtis <curtis@i-mps.com>
Date: 星期一, 30 三月 2026 14:24:17 +0800
Subject: [PATCH] fix: 更新內部引用方法參照
---
scripts/final_classify_scanImp_pas.test.js | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 115 insertions(+), 0 deletions(-)
diff --git a/scripts/final_classify_scanImp_pas.test.js b/scripts/final_classify_scanImp_pas.test.js
new file mode 100644
index 0000000..838528e
--- /dev/null
+++ b/scripts/final_classify_scanImp_pas.test.js
@@ -0,0 +1,115 @@
+const fs = require('fs');
+const path = require('path');
+
+const JSON_FILES = [
+ 'doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.BusinessLogic.json',
+ 'doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.ImageProcessor.json',
+ 'doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.ScannerController.json',
+ 'doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.TransportManager.json',
+ 'doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.UIView.json'
+];
+
+const TAGS_TO_FILE = {
+ // ScannerController
+ 'ScannerController.acquisitionHandler': 'CB_IMGPSScanImp.scan.ac.pas',
+ 'ScannerController.twainWrapper': 'CB_IMGPSScanImp.scan.twain.pas',
+
+ // TransportManager
+ 'TransportManager.apiClient': 'CB_IMGPSScanImp.apiClient.pas',
+ 'TransportManager.fileTransfer': 'CB_IMGPSScanImp.fileClient.pas',
+ 'TransportManager.certificateManager': 'CB_IMGPSScanImp.cert.pas',
+ 'TransportManager.payloadArchiver': 'CB_IMGPSScanImp.archiver.pas',
+
+ // ImageProcessor
+ 'ImageProcessor.transformer': 'CB_IMGPSScanImp.img.trans.pas',
+ 'ImageProcessor.converter': 'CB_IMGPSScanImp.img.cnv.pas',
+ 'ImageProcessor.anchorAnalyzer': 'CB_IMGPSScanImp.img.anchor.pas',
+ 'ImageProcessor.payloadArchiver': 'CB_IMGPSScanImp.archiver.pas',
+
+ // BusinessLogic
+ 'BusinessLogic.systemInternal': 'CB_IMGPSScanImp.bloc.sys.pas',
+ 'BusinessLogic.configRepository': 'CB_IMGPSScanImp.bloc.cfg.pas',
+ 'BusinessLogic.ruleEngine': 'CB_IMGPSScanImp.bloc.rule.pas',
+ 'BusinessLogic.entityMapping': 'CB_IMGPSScanImp.bloc.map.pas',
+ 'BusinessLogic.fileManager': 'CB_IMGPSScanImp.bloc.file.pas',
+ 'BusinessLogic.caseManager': 'CB_IMGPSScanImp.bloc.case.pas',
+ 'BusinessLogic.entityModel': 'CB_IMGPSScanImp.bloc.model.pas',
+ 'BusinessLogic.activeXWrapper': 'CB_IMGPSScanImp.bloc.ocx.pas',
+
+ // UIView
+ '初始化與生命週期': 'CB_IMGPSScanImp.view.lfcycle.pas',
+ 'UIView.events': 'CB_IMGPSScanImp.view.evt.pas',
+ 'UIView.inputHandler': 'CB_IMGPSScanImp.view.evt.pas',
+ 'UIView.configRepository': 'CB_IMGPSScanImp.view.cfg.pas',
+ 'UIView.ruleEngine': 'CB_IMGPSScanImp.view.rule.pas',
+ 'UIView.entityMapping': 'CB_IMGPSScanImp.view.map.pas',
+ 'UIView.fileManager': 'CB_IMGPSScanImp.view.file.pas',
+ 'UIView.caseManager': 'CB_IMGPSScanImp.view.case.pas',
+ 'UIView.entityModel': 'CB_IMGPSScanImp.view.model.pas',
+ 'UIView.activeXWrapper': 'CB_IMGPSScanImp.view.ocx.pas',
+ 'UIView.treeView': 'CB_IMGPSScanImp.view.tree.pas',
+ 'UIView.toolBar': 'CB_IMGPSScanImp.view.toolbar.pas',
+ 'UIView.imageScrollBox': 'CB_IMGPSScanImp.view.isb.pas',
+ 'UIView.popupMenu': 'CB_IMGPSScanImp.view.menu.pas',
+ 'UIView.listView': 'CB_IMGPSScanImp.view.list.pas',
+};
+
+const SRC_FILE = 'CB_IMGPSScanImp.pas.bk';
+
+function main() {
+ const originalContent = fs.readFileSync(SRC_FILE, 'utf8');
+ const lines = originalContent.split(/\r?\n/);
+
+ let successCount = 0;
+ let failCount = 0;
+
+ JSON_FILES.forEach(jsonFile => {
+ console.log(`Checking ${jsonFile}...`);
+ const data = JSON.parse(fs.readFileSync(jsonFile, 'utf8'));
+ data.forEach(m => {
+ const lIndex = parseInt(m.lIndex);
+ const rIndex = parseInt(m.rIndex);
+ if (lIndex <= 0 || rIndex <= 0) return;
+
+ // Find the target file
+ let targetFile = null;
+ for (const tag of m.tags) {
+ if (TAGS_TO_FILE[tag]) {
+ targetFile = TAGS_TO_FILE[tag];
+ break;
+ }
+ }
+
+ if (targetFile) {
+ if (!fs.existsSync(targetFile)) {
+ console.error(`Error: Target file ${targetFile} does not exist.`);
+ failCount++;
+ return;
+ }
+
+ const subFileContent = fs.readFileSync(targetFile, 'utf8');
+ const expectedCodeLines = lines.slice(lIndex - 1, rIndex);
+ const expectedCode = expectedCodeLines.join('\n');
+
+ // Check if expectedCode exists in subFileContent
+ // Note: the subFileContent has an extra \n between methods
+ if (subFileContent.includes(expectedCode)) {
+ successCount++;
+ } else {
+ console.error(`Error: Code for ${m.matcher} (line ${lIndex}-${rIndex}) not found in ${targetFile}`);
+ failCount++;
+ }
+ }
+ });
+ });
+
+ console.log(`\nVerification Results:`);
+ console.log(` Success: ${successCount}`);
+ console.log(` Fail: ${failCount}`);
+
+ if (failCount > 0) {
+ process.exit(1);
+ }
+}
+
+main();
--
Gitblit v1.8.0