diff --git a/web/src/engine/predictive-text/worker-thread/src/main/correction/search-quotient-node.ts b/web/src/engine/predictive-text/worker-thread/src/main/correction/search-quotient-node.ts index 32acf3e91d..684fcb4131 100644 --- a/web/src/engine/predictive-text/worker-thread/src/main/correction/search-quotient-node.ts +++ b/web/src/engine/predictive-text/worker-thread/src/main/correction/search-quotient-node.ts @@ -210,7 +210,7 @@ export interface SearchQuotientNode { * @param keystrokeDistributions * @internal */ -export function quotientPathHasInputs(node: SearchQuotientNode, keystrokeDistributions: Distribution[]): boolean { +function quotientPathHasInputs(node: SearchQuotientNode, keystrokeDistributions: Distribution[]): boolean { if(!(node instanceof SearchQuotientSpur)) { for(const p of node.parents) { if(quotientPathHasInputs(p, keystrokeDistributions)) { @@ -274,7 +274,7 @@ export function quotientPathHasInputs(node: SearchQuotientNode, keystrokeDistrib * * Intended only for use during unit testing. Does not include the root node. */ -export function constituentPaths(node: SearchQuotientNode): SearchQuotientSpur[][] { +function constituentPaths(node: SearchQuotientNode): SearchQuotientSpur[][] { if(node instanceof SearchQuotientRoot) { return []; } else if(node instanceof SearchQuotientSpur) { @@ -290,4 +290,9 @@ export function constituentPaths(node: SearchQuotientNode): SearchQuotientSpur[] } else { throw new Error("constituentPaths is unable to handle a new, unexpected SearchQuotientNode type"); } +} + +export const unitTestEndpoints = { + quotientPathHasInputs, + constituentPaths } \ No newline at end of file diff --git a/web/src/engine/predictive-text/worker-thread/src/main/test-index.ts b/web/src/engine/predictive-text/worker-thread/src/main/test-index.ts index 291e9296b7..c6a05e7694 100644 --- a/web/src/engine/predictive-text/worker-thread/src/main/test-index.ts +++ b/web/src/engine/predictive-text/worker-thread/src/main/test-index.ts @@ -20,4 +20,10 @@ export { ModelCompositor } from './model-compositor.js'; export * from './predict-helpers.js'; export { default as TransformUtils } from './transformUtils.js' export { default as LMLayerWorker } from './index.js' -export * from './transform-subsets.js'; \ No newline at end of file +export * from './transform-subsets.js'; + +// unitTestEndpoints +import { unitTestEndpoints as SearchQuotientNodeEndpoints } from './correction/search-quotient-node.js'; +export const unitTestEndpoints: typeof SearchQuotientNodeEndpoints = { + ...SearchQuotientNodeEndpoints +} \ No newline at end of file diff --git a/web/src/test/auto/headless/engine/predictive-text/worker-thread/context/context-token.tests.ts b/web/src/test/auto/headless/engine/predictive-text/worker-thread/context/context-token.tests.ts index e242b79c54..07caadbe78 100644 --- a/web/src/test/auto/headless/engine/predictive-text/worker-thread/context/context-token.tests.ts +++ b/web/src/test/auto/headless/engine/predictive-text/worker-thread/context/context-token.tests.ts @@ -13,14 +13,16 @@ import { assert } from 'chai'; import { default as defaultBreaker } from '@keymanapp/models-wordbreakers'; import { jsonFixture } from '@keymanapp/common-test-resources/model-helpers.mjs'; import { LexicalModelTypes } from '@keymanapp/common-types'; +import { KMWString } from '@keymanapp/web-utils'; -import { ContextToken, correction, generateSubsetId, getBestMatches, models, preprocessInputSources, quotientPathHasInputs, SearchQuotientSpur } from '@keymanapp/lm-worker/test-index'; +import { ContextToken, correction, generateSubsetId, getBestMatches, models, preprocessInputSources, SearchQuotientSpur, unitTestEndpoints } from '@keymanapp/lm-worker/test-index'; import Distribution = LexicalModelTypes.Distribution; import ExecutionTimer = correction.ExecutionTimer; import Transform = LexicalModelTypes.Transform; import TrieModel = models.TrieModel; -import { KMWString } from '@keymanapp/web-utils'; + +const { quotientPathHasInputs } = unitTestEndpoints; var plainModel = new TrieModel(jsonFixture('models/tries/english-1000'), {wordBreaker: defaultBreaker}); diff --git a/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-node.tests.ts b/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-node.tests.ts index 85681a944e..7e50825b57 100644 --- a/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-node.tests.ts +++ b/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-node.tests.ts @@ -1,10 +1,12 @@ import { assert } from 'chai'; import { jsonFixture } from '@keymanapp/common-test-resources/model-helpers.mjs'; -import { LegacyQuotientRoot, models, quotientPathHasInputs } from '@keymanapp/lm-worker/test-index'; +import { LegacyQuotientRoot, models, unitTestEndpoints } from '@keymanapp/lm-worker/test-index'; import { buildSimplePathSplitFixture } from './search-quotient-spur.tests.js'; +const { quotientPathHasInputs } = unitTestEndpoints; + import TrieModel = models.TrieModel; const testModel = new TrieModel(jsonFixture('models/tries/english-1000')); diff --git a/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-spur.tests.ts b/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-spur.tests.ts index c95e6e333d..8c01201c6c 100644 --- a/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-spur.tests.ts +++ b/web/src/test/auto/headless/engine/predictive-text/worker-thread/correction-search/search-quotient-spur.tests.ts @@ -10,10 +10,12 @@ import { assert } from 'chai'; import { jsonFixture } from '@keymanapp/common-test-resources/model-helpers.mjs'; -import { LegacyQuotientSpur, models, LegacyQuotientRoot, quotientPathHasInputs, constituentPaths } from '@keymanapp/lm-worker/test-index'; +import { LegacyQuotientSpur, models, LegacyQuotientRoot, unitTestEndpoints } from '@keymanapp/lm-worker/test-index'; import TrieModel = models.TrieModel; +const { constituentPaths, quotientPathHasInputs } = unitTestEndpoints; + const testModel = new TrieModel(jsonFixture('models/tries/english-1000')); export function buildSimplePathSplitFixture() {