@tyvm/knowhow 0.0.33 → 0.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autodoc/plugins/downloader/downloader.mdx +2 -2
- package/benchmarks/.dockerignore +7 -0
- package/benchmarks/README.md +166 -0
- package/benchmarks/docker/Dockerfile +68 -0
- package/benchmarks/example-config.yml +27 -0
- package/benchmarks/jest.config.js +13 -0
- package/benchmarks/package-lock.json +4297 -0
- package/benchmarks/package.json +39 -0
- package/benchmarks/results/4542435/2025-08-05/lms/lms-openai-gpt-oss-20b.json +2814 -0
- package/benchmarks/results/4542435/2025-08-05/lms/lms-qwen-qwen3-30b-a3b-2507.json +2014 -0
- package/benchmarks/results/4fb9125/2025-08-07/anthropic/anthropic-claude-sonnet-4-20250514.json +3121 -0
- package/benchmarks/results/5766aee/2025-08-02/lms-qwen/qwen3-coder-30b.json +98 -0
- package/benchmarks/results/6d73808/2025-08-07/openai/openai-gpt-5.json +3256 -0
- package/benchmarks/results/77bf0a6/2025-08-02/lms-qwen/qwen3-30b-a3b-2507.json +4298 -0
- package/benchmarks/results/8c0d445/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +3031 -0
- package/benchmarks/results/8c0d445/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +2990 -0
- package/benchmarks/results/ac6b2ab/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +3256 -0
- package/benchmarks/results/ac6b2ab/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +3007 -0
- package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +3256 -0
- package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-mini-2025-04-14.json +3036 -0
- package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-nano-2025-04-14.json +3280 -0
- package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-30b-a3b-2507.json +1920 -0
- package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-coder-30b.json +3281 -0
- package/benchmarks/results/b502ed9/2025-08-03/lms-qwen/qwen3-coder-30b.json +2896 -0
- package/benchmarks/results/d1a8129/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +3011 -0
- package/benchmarks/results/e60471c/2025-08-03/lms/qwen3-30b-a3b-2507.json +3003 -0
- package/benchmarks/scripts/build-and-run.sh +47 -0
- package/benchmarks/scripts/clone-exercism.sh +92 -0
- package/benchmarks/scripts/validate.sh +48 -0
- package/benchmarks/src/__tests__/runner.test.ts +27 -0
- package/benchmarks/src/cli.ts +90 -0
- package/benchmarks/src/evaluators/EvaluatorRegistry.ts +64 -0
- package/benchmarks/src/evaluators/JavaScriptEvaluator.ts +183 -0
- package/benchmarks/src/evaluators/index.ts +3 -0
- package/benchmarks/src/evaluators/types.ts +22 -0
- package/benchmarks/src/index.ts +3 -0
- package/benchmarks/src/providers.ts +13 -0
- package/benchmarks/src/runner.ts +824 -0
- package/benchmarks/src/types.ts +63 -0
- package/benchmarks/tsconfig.json +19 -0
- package/jest.config.js +2 -1
- package/leaderboard/README.md +148 -0
- package/leaderboard/app/api/benchmark-data/route.ts +131 -0
- package/leaderboard/app/api/benchmark-detail/route.ts +172 -0
- package/leaderboard/app/details/[model]/[provider]/[language]/page.tsx +501 -0
- package/leaderboard/app/exercise/[model]/[provider]/[language]/[exercise]/page.tsx +375 -0
- package/leaderboard/app/globals.css +27 -0
- package/leaderboard/app/layout.tsx +21 -0
- package/leaderboard/app/page.tsx +170 -0
- package/leaderboard/components/LeaderboardTable.tsx +168 -0
- package/leaderboard/components/PerformanceChart.tsx +109 -0
- package/leaderboard/next-env.d.ts +5 -0
- package/leaderboard/next.config.js +4 -0
- package/leaderboard/package-lock.json +6363 -0
- package/leaderboard/package.json +28 -0
- package/leaderboard/postcss.config.js +6 -0
- package/leaderboard/tailwind.config.js +17 -0
- package/leaderboard/tsconfig.json +28 -0
- package/leaderboard/types/benchmark.ts +67 -0
- package/leaderboard/utils/dataProcessor.ts +33 -0
- package/package.json +2 -1
- package/src/agents/base/base.ts +182 -24
- package/src/agents/base/prompt.ts +28 -0
- package/src/agents/index.ts +3 -0
- package/src/agents/patcher/patcher.ts +6 -4
- package/src/agents/setup/setup.ts +56 -0
- package/src/agents/tools/agentCall.ts +6 -2
- package/src/agents/tools/aiClient.ts +74 -8
- package/src/agents/tools/execCommand.ts +13 -14
- package/src/agents/tools/executeScript/README.md +16 -0
- package/src/agents/tools/index.ts +2 -0
- package/src/agents/tools/list.ts +73 -16
- package/src/agents/tools/startAgentTask.ts +109 -0
- package/src/agents/tools/textSearch.ts +1 -1
- package/src/agents/tools/visionTool.ts +31 -2
- package/src/agents/tools/ycmd/client.ts +608 -0
- package/src/agents/tools/ycmd/definitions.ts +294 -0
- package/src/agents/tools/ycmd/detection.ts +211 -0
- package/src/agents/tools/ycmd/index.ts +11 -0
- package/src/agents/tools/ycmd/installer.ts +251 -0
- package/src/agents/tools/ycmd/server.ts +535 -0
- package/src/agents/tools/ycmd/serverManager.ts +316 -0
- package/src/agents/tools/ycmd/tools/completion.ts +113 -0
- package/src/agents/tools/ycmd/tools/diagnostics.ts +155 -0
- package/src/agents/tools/ycmd/tools/getLocations.ts +173 -0
- package/src/agents/tools/ycmd/tools/goto.ts +169 -0
- package/src/agents/tools/ycmd/tools/refactor.ts +204 -0
- package/src/agents/tools/ycmd/tools/signature.ts +174 -0
- package/src/agents/tools/ycmd/tools/start.ts +95 -0
- package/src/agents/tools/ycmd/utils/pathUtils.ts +59 -0
- package/src/ai.ts +15 -0
- package/src/chat/CliChatService.ts +277 -0
- package/src/chat/modules/AgentModule.ts +985 -0
- package/src/chat/modules/AskModule.ts +98 -0
- package/src/chat/modules/BaseChatModule.ts +66 -0
- package/src/chat/modules/InternalChatModule.ts +174 -0
- package/src/chat/modules/SearchModule.ts +166 -0
- package/src/chat/modules/SetupModule.ts +185 -0
- package/src/chat/modules/SystemModule.ts +120 -0
- package/src/chat/modules/VoiceModule.ts +70 -0
- package/src/chat/modules/index.js +5 -0
- package/src/chat/types.ts +97 -0
- package/src/chat.ts +9 -1
- package/src/chat2.ts +62 -0
- package/src/cli.ts +264 -35
- package/src/clients/anthropic.ts +14 -7
- package/src/clients/gemini.ts +15 -7
- package/src/clients/http.ts +17 -7
- package/src/clients/index.ts +117 -4
- package/src/clients/knowhow.ts +7 -2
- package/src/clients/knowhowMcp.ts +118 -0
- package/src/clients/openai.ts +32 -8
- package/src/clients/types.ts +1 -0
- package/src/clients/xai.ts +17 -5
- package/src/config.ts +30 -5
- package/src/conversion.ts +4 -1
- package/src/login.ts +26 -9
- package/src/microphone.ts +0 -1
- package/src/plugins/downloader/downloader.ts +191 -49
- package/src/plugins/downloader/plugin.ts +3 -1
- package/src/plugins/plugins.ts +3 -0
- package/src/processors/CustomVariables.ts +425 -0
- package/src/processors/HarmonyToolProcessor.ts +264 -0
- package/src/processors/XmlToolCallProcessor.ts +533 -0
- package/src/processors/index.ts +3 -0
- package/src/prompts/KnowhowConfigExamples.ts +376 -0
- package/src/services/KnowhowClient.ts +49 -3
- package/src/services/Mcp.ts +42 -3
- package/src/services/McpServer.ts +14 -4
- package/src/services/McpWebsocketTransport.ts +21 -7
- package/src/services/MessageProcessor.ts +10 -5
- package/src/services/index.ts +5 -0
- package/src/services/script-execution/ScriptExecutor.ts +34 -1
- package/src/services/types.ts +17 -14
- package/src/types.ts +17 -0
- package/src/utils/index.ts +138 -0
- package/tests/XmlToolCallProcessor.test.ts +468 -0
- package/tests/manual/ycmd/debug_diagnostics_test.ts +127 -0
- package/tests/manual/ycmd/fixtures/debug_diagnostics.ts +26 -0
- package/tests/manual/ycmd/fixtures/file_change_test.ts +17 -0
- package/tests/manual/ycmd/minimal_advanced_test.ts +108 -0
- package/tests/manual/ycmd/simple_diagnostics_test.ts +61 -0
- package/tests/manual/ycmd/simple_test.ts +74 -0
- package/tests/manual/ycmd/test-typescript-sample.ts +34 -0
- package/tests/manual/ycmd/test_advanced_features.ts +407 -0
- package/tests/manual/ycmd/test_advanced_with_tools.ts +320 -0
- package/tests/manual/ycmd/test_comprehensive_typescript.ts +179 -0
- package/tests/manual/ycmd/test_diagnostics_file_changes.ts +249 -0
- package/tests/manual/ycmd/test_diagnostics_fix.ts +99 -0
- package/tests/manual/ycmd/test_diagnostics_simple.ts +100 -0
- package/tests/manual/ycmd/test_diagnostics_timing.ts +120 -0
- package/tests/manual/ycmd/test_discover_commands.ts +310 -0
- package/tests/manual/ycmd/test_endpoints.ts +115 -0
- package/tests/manual/ycmd/test_final_comprehensive.ts +218 -0
- package/tests/manual/ycmd/test_final_validation.ts +150 -0
- package/tests/manual/ycmd/test_implementation.js +42 -0
- package/tests/manual/ycmd/test_individual_ycmd_tool.ts +39 -0
- package/tests/manual/ycmd/test_server_manager.ts +52 -0
- package/tests/manual/ycmd/test_simple_debug.ts +86 -0
- package/tests/manual/ycmd/test_tsserver_workflow.js +83 -0
- package/tests/manual/ycmd/test_tsserver_workflow.ts +122 -0
- package/tests/manual/ycmd/test_typescript_simple.ts +48 -0
- package/tests/manual/ycmd/test_typescript_ycmd.ts +105 -0
- package/tests/manual/ycmd/test_workspace_config.ts +90 -0
- package/tests/manual/ycmd/test_ycmd_auto_start.ts +137 -0
- package/tests/manual/ycmd/test_ycmd_comprehensive.ts +73 -0
- package/tests/manual/ycmd/test_ycmd_connection.py +10 -0
- package/tests/manual/ycmd/test_ycmd_direct.ts +142 -0
- package/tests/manual/ycmd/test_ycmd_experiment.ts +48 -0
- package/tests/manual/ycmd/test_ycmd_final.ts +200 -0
- package/tests/manual/ycmd/test_ycmd_fixed.py +18 -0
- package/tests/manual/ycmd/test_ycmd_integration.ts +112 -0
- package/tests/manual/ycmd/test_ycmd_simple.ts +45 -0
- package/tests/manual/ycmd/test_ycmd_usage.py +27 -0
- package/tests/manual/ycmd/working_simple_test.ts +134 -0
- package/ts_build/src/agents/base/base.d.ts +15 -1
- package/ts_build/src/agents/base/base.js +121 -20
- package/ts_build/src/agents/base/base.js.map +1 -1
- package/ts_build/src/agents/base/prompt.d.ts +1 -1
- package/ts_build/src/agents/base/prompt.js +28 -0
- package/ts_build/src/agents/base/prompt.js.map +1 -1
- package/ts_build/src/agents/index.d.ts +2 -0
- package/ts_build/src/agents/index.js +2 -0
- package/ts_build/src/agents/index.js.map +1 -1
- package/ts_build/src/agents/patcher/patcher.js +6 -3
- package/ts_build/src/agents/patcher/patcher.js.map +1 -1
- package/ts_build/src/agents/setup/setup.d.ts +8 -0
- package/ts_build/src/agents/setup/setup.js +59 -0
- package/ts_build/src/agents/setup/setup.js.map +1 -0
- package/ts_build/src/agents/tools/agentCall.js +5 -2
- package/ts_build/src/agents/tools/agentCall.js.map +1 -1
- package/ts_build/src/agents/tools/aiClient.d.ts +6 -5
- package/ts_build/src/agents/tools/aiClient.js +37 -6
- package/ts_build/src/agents/tools/aiClient.js.map +1 -1
- package/ts_build/src/agents/tools/execCommand.d.ts +2 -2
- package/ts_build/src/agents/tools/execCommand.js +5 -6
- package/ts_build/src/agents/tools/execCommand.js.map +1 -1
- package/ts_build/src/agents/tools/executeScript/index.d.ts +1 -1
- package/ts_build/src/agents/tools/index.d.ts +2 -0
- package/ts_build/src/agents/tools/index.js +2 -0
- package/ts_build/src/agents/tools/index.js.map +1 -1
- package/ts_build/src/agents/tools/list.js +66 -16
- package/ts_build/src/agents/tools/list.js.map +1 -1
- package/ts_build/src/agents/tools/startAgentTask.d.ts +13 -0
- package/ts_build/src/agents/tools/startAgentTask.js +74 -0
- package/ts_build/src/agents/tools/startAgentTask.js.map +1 -0
- package/ts_build/src/agents/tools/startChatTask.d.ts +13 -0
- package/ts_build/src/agents/tools/startChatTask.js +73 -0
- package/ts_build/src/agents/tools/startChatTask.js.map +1 -0
- package/ts_build/src/agents/tools/textSearch.js +1 -1
- package/ts_build/src/agents/tools/textSearch.js.map +1 -1
- package/ts_build/src/agents/tools/visionTool.d.ts +1 -1
- package/ts_build/src/agents/tools/visionTool.js +23 -3
- package/ts_build/src/agents/tools/visionTool.js.map +1 -1
- package/ts_build/src/agents/tools/ycmd/client.d.ts +93 -0
- package/ts_build/src/agents/tools/ycmd/client.js +355 -0
- package/ts_build/src/agents/tools/ycmd/client.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/definitions.d.ts +345 -0
- package/ts_build/src/agents/tools/ycmd/definitions.js +298 -0
- package/ts_build/src/agents/tools/ycmd/definitions.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/detection.d.ts +11 -0
- package/ts_build/src/agents/tools/ycmd/detection.js +175 -0
- package/ts_build/src/agents/tools/ycmd/detection.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/index.d.ts +8 -0
- package/ts_build/src/agents/tools/ycmd/index.js +20 -0
- package/ts_build/src/agents/tools/ycmd/index.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/installer.d.ts +19 -0
- package/ts_build/src/agents/tools/ycmd/installer.js +196 -0
- package/ts_build/src/agents/tools/ycmd/installer.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/server.d.ts +35 -0
- package/ts_build/src/agents/tools/ycmd/server.js +363 -0
- package/ts_build/src/agents/tools/ycmd/server.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/serverManager.d.ts +39 -0
- package/ts_build/src/agents/tools/ycmd/serverManager.js +210 -0
- package/ts_build/src/agents/tools/ycmd/serverManager.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/tools/completion.d.ts +22 -0
- package/ts_build/src/agents/tools/ycmd/tools/completion.js +72 -0
- package/ts_build/src/agents/tools/ycmd/tools/completion.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/tools/diagnostics.d.ts +42 -0
- package/ts_build/src/agents/tools/ycmd/tools/diagnostics.js +88 -0
- package/ts_build/src/agents/tools/ycmd/tools/diagnostics.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/tools/getLocations.d.ts +22 -0
- package/ts_build/src/agents/tools/ycmd/tools/getLocations.js +142 -0
- package/ts_build/src/agents/tools/ycmd/tools/getLocations.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/tools/goto.d.ts +20 -0
- package/ts_build/src/agents/tools/ycmd/tools/goto.js +101 -0
- package/ts_build/src/agents/tools/ycmd/tools/goto.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/tools/refactor.d.ts +32 -0
- package/ts_build/src/agents/tools/ycmd/tools/refactor.js +123 -0
- package/ts_build/src/agents/tools/ycmd/tools/refactor.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/tools/signature.d.ts +25 -0
- package/ts_build/src/agents/tools/ycmd/tools/signature.js +110 -0
- package/ts_build/src/agents/tools/ycmd/tools/signature.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/tools/start.d.ts +17 -0
- package/ts_build/src/agents/tools/ycmd/tools/start.js +65 -0
- package/ts_build/src/agents/tools/ycmd/tools/start.js.map +1 -0
- package/ts_build/src/agents/tools/ycmd/utils/pathUtils.d.ts +4 -0
- package/ts_build/src/agents/tools/ycmd/utils/pathUtils.js +67 -0
- package/ts_build/src/agents/tools/ycmd/utils/pathUtils.js.map +1 -0
- package/ts_build/src/ai.d.ts +1 -0
- package/ts_build/src/ai.js +40 -1
- package/ts_build/src/ai.js.map +1 -1
- package/ts_build/src/chat/ChatCommandHandler.d.ts +36 -0
- package/ts_build/src/chat/ChatCommandHandler.js +268 -0
- package/ts_build/src/chat/ChatCommandHandler.js.map +1 -0
- package/ts_build/src/chat/ChatInputManager.d.ts +22 -0
- package/ts_build/src/chat/ChatInputManager.js +85 -0
- package/ts_build/src/chat/ChatInputManager.js.map +1 -0
- package/ts_build/src/chat/ChatManager.d.ts +49 -0
- package/ts_build/src/chat/ChatManager.js +271 -0
- package/ts_build/src/chat/ChatManager.js.map +1 -0
- package/ts_build/src/chat/ChatSession.d.ts +32 -0
- package/ts_build/src/chat/ChatSession.js +3 -0
- package/ts_build/src/chat/ChatSession.js.map +1 -0
- package/ts_build/src/chat/ChatSessionManager.d.ts +19 -0
- package/ts_build/src/chat/ChatSessionManager.js +188 -0
- package/ts_build/src/chat/ChatSessionManager.js.map +1 -0
- package/ts_build/src/chat/ChatStateManager.d.ts +58 -0
- package/ts_build/src/chat/ChatStateManager.js +156 -0
- package/ts_build/src/chat/ChatStateManager.js.map +1 -0
- package/ts_build/src/chat/CliChatService.d.ts +35 -0
- package/ts_build/src/chat/CliChatService.js +201 -0
- package/ts_build/src/chat/CliChatService.js.map +1 -0
- package/ts_build/src/chat/InterruptibleInput.d.ts +20 -0
- package/ts_build/src/chat/InterruptibleInput.js +109 -0
- package/ts_build/src/chat/InterruptibleInput.js.map +1 -0
- package/ts_build/src/chat/interfaces/ChatModule.d.ts +6 -0
- package/ts_build/src/chat/interfaces/ChatModule.js +3 -0
- package/ts_build/src/chat/interfaces/ChatModule.js.map +1 -0
- package/ts_build/src/chat/modules/AgentModule.d.ts +57 -0
- package/ts_build/src/chat/modules/AgentModule.js +709 -0
- package/ts_build/src/chat/modules/AgentModule.js.map +1 -0
- package/ts_build/src/chat/modules/AskModule.d.ts +10 -0
- package/ts_build/src/chat/modules/AskModule.js +63 -0
- package/ts_build/src/chat/modules/AskModule.js.map +1 -0
- package/ts_build/src/chat/modules/BaseChatModule.d.ts +14 -0
- package/ts_build/src/chat/modules/BaseChatModule.js +32 -0
- package/ts_build/src/chat/modules/BaseChatModule.js.map +1 -0
- package/ts_build/src/chat/modules/InternalChatModule.d.ts +24 -0
- package/ts_build/src/chat/modules/InternalChatModule.js +127 -0
- package/ts_build/src/chat/modules/InternalChatModule.js.map +1 -0
- package/ts_build/src/chat/modules/SearchModule.d.ts +12 -0
- package/ts_build/src/chat/modules/SearchModule.js +119 -0
- package/ts_build/src/chat/modules/SearchModule.js.map +1 -0
- package/ts_build/src/chat/modules/SetupModule.d.ts +15 -0
- package/ts_build/src/chat/modules/SetupModule.js +147 -0
- package/ts_build/src/chat/modules/SetupModule.js.map +1 -0
- package/ts_build/src/chat/modules/SystemModule.d.ts +14 -0
- package/ts_build/src/chat/modules/SystemModule.js +90 -0
- package/ts_build/src/chat/modules/SystemModule.js.map +1 -0
- package/ts_build/src/chat/modules/VoiceModule.d.ts +11 -0
- package/ts_build/src/chat/modules/VoiceModule.js +57 -0
- package/ts_build/src/chat/modules/VoiceModule.js.map +1 -0
- package/ts_build/src/chat/types.d.ts +83 -0
- package/ts_build/src/chat/types.js +3 -0
- package/ts_build/src/chat/types.js.map +1 -0
- package/ts_build/src/chat.js +7 -1
- package/ts_build/src/chat.js.map +1 -1
- package/ts_build/src/chat2.d.ts +3 -0
- package/ts_build/src/chat2.js +47 -0
- package/ts_build/src/chat2.js.map +1 -0
- package/ts_build/src/cli.js +218 -37
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/anthropic.d.ts +5 -2
- package/ts_build/src/clients/anthropic.js +12 -7
- package/ts_build/src/clients/anthropic.js.map +1 -1
- package/ts_build/src/clients/gemini.d.ts +6 -3
- package/ts_build/src/clients/gemini.js +13 -7
- package/ts_build/src/clients/gemini.js.map +1 -1
- package/ts_build/src/clients/http.d.ts +1 -0
- package/ts_build/src/clients/http.js +12 -5
- package/ts_build/src/clients/http.js.map +1 -1
- package/ts_build/src/clients/index.d.ts +10 -0
- package/ts_build/src/clients/index.js +74 -4
- package/ts_build/src/clients/index.js.map +1 -1
- package/ts_build/src/clients/knowhow.d.ts +3 -1
- package/ts_build/src/clients/knowhow.js +8 -2
- package/ts_build/src/clients/knowhow.js.map +1 -1
- package/ts_build/src/clients/knowhowMcp.d.ts +20 -0
- package/ts_build/src/clients/knowhowMcp.js +86 -0
- package/ts_build/src/clients/knowhowMcp.js.map +1 -0
- package/ts_build/src/clients/openai.d.ts +5 -2
- package/ts_build/src/clients/openai.js +29 -8
- package/ts_build/src/clients/openai.js.map +1 -1
- package/ts_build/src/clients/types.d.ts +1 -0
- package/ts_build/src/clients/xai.d.ts +5 -2
- package/ts_build/src/clients/xai.js +15 -5
- package/ts_build/src/clients/xai.js.map +1 -1
- package/ts_build/src/config.js +24 -3
- package/ts_build/src/config.js.map +1 -1
- package/ts_build/src/conversion.js +6 -4
- package/ts_build/src/conversion.js.map +1 -1
- package/ts_build/src/login.d.ts +1 -1
- package/ts_build/src/login.js +21 -7
- package/ts_build/src/login.js.map +1 -1
- package/ts_build/src/microphone.js.map +1 -1
- package/ts_build/src/plugins/downloader/downloader.d.ts +7 -5
- package/ts_build/src/plugins/downloader/downloader.js +147 -44
- package/ts_build/src/plugins/downloader/downloader.js.map +1 -1
- package/ts_build/src/plugins/downloader/plugin.js +5 -3
- package/ts_build/src/plugins/downloader/plugin.js.map +1 -1
- package/ts_build/src/plugins/plugins.js +3 -0
- package/ts_build/src/plugins/plugins.js.map +1 -1
- package/ts_build/src/processors/CustomVariables.d.ts +32 -0
- package/ts_build/src/processors/CustomVariables.js +297 -0
- package/ts_build/src/processors/CustomVariables.js.map +1 -0
- package/ts_build/src/processors/HarmonyToolProcessor.d.ts +15 -0
- package/ts_build/src/processors/HarmonyToolProcessor.js +154 -0
- package/ts_build/src/processors/HarmonyToolProcessor.js.map +1 -0
- package/ts_build/src/processors/XmlToolCallProcessor.d.ts +14 -0
- package/ts_build/src/processors/XmlToolCallProcessor.js +357 -0
- package/ts_build/src/processors/XmlToolCallProcessor.js.map +1 -0
- package/ts_build/src/processors/index.d.ts +3 -0
- package/ts_build/src/processors/index.js +7 -1
- package/ts_build/src/processors/index.js.map +1 -1
- package/ts_build/src/prompts/KnowhowConfigExamples.d.ts +2 -0
- package/ts_build/src/prompts/KnowhowConfigExamples.js +379 -0
- package/ts_build/src/prompts/KnowhowConfigExamples.js.map +1 -0
- package/ts_build/src/services/KnowhowClient.d.ts +22 -0
- package/ts_build/src/services/KnowhowClient.js +14 -2
- package/ts_build/src/services/KnowhowClient.js.map +1 -1
- package/ts_build/src/services/Mcp.d.ts +1 -0
- package/ts_build/src/services/Mcp.js +20 -3
- package/ts_build/src/services/Mcp.js.map +1 -1
- package/ts_build/src/services/McpServer.d.ts +1 -1
- package/ts_build/src/services/McpServer.js +8 -4
- package/ts_build/src/services/McpServer.js.map +1 -1
- package/ts_build/src/services/McpWebsocketTransport.js +17 -7
- package/ts_build/src/services/McpWebsocketTransport.js.map +1 -1
- package/ts_build/src/services/MessageProcessor.d.ts +1 -1
- package/ts_build/src/services/MessageProcessor.js +4 -4
- package/ts_build/src/services/MessageProcessor.js.map +1 -1
- package/ts_build/src/services/index.d.ts +2 -0
- package/ts_build/src/services/index.js +4 -0
- package/ts_build/src/services/index.js.map +1 -1
- package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +1 -0
- package/ts_build/src/services/script-execution/ScriptExecutor.js +23 -0
- package/ts_build/src/services/script-execution/ScriptExecutor.js.map +1 -1
- package/ts_build/src/services/types.d.ts +2 -6
- package/ts_build/src/services/types.js +4 -4
- package/ts_build/src/services/types.js.map +1 -1
- package/ts_build/src/types.d.ts +11 -0
- package/ts_build/src/types.js +8 -0
- package/ts_build/src/types.js.map +1 -1
- package/ts_build/src/utils/index.d.ts +2 -0
- package/ts_build/src/utils/index.js +102 -1
- package/ts_build/src/utils/index.js.map +1 -1
- package/ts_build/tests/XmlToolCallProcessor.test.d.ts +1 -0
- package/ts_build/tests/XmlToolCallProcessor.test.js +376 -0
- package/ts_build/tests/XmlToolCallProcessor.test.js.map +1 -0
- package/ts_build/tests/manual/ycmd/debug_diagnostics_test.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js +114 -0
- package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js.map +1 -0
- package/ts_build/tests/manual/ycmd/minimal_advanced_test.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/minimal_advanced_test.js +104 -0
- package/ts_build/tests/manual/ycmd/minimal_advanced_test.js.map +1 -0
- package/ts_build/tests/manual/ycmd/simple_diagnostics_test.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js +74 -0
- package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js.map +1 -0
- package/ts_build/tests/manual/ycmd/simple_test.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/simple_test.js +82 -0
- package/ts_build/tests/manual/ycmd/simple_test.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test-typescript-sample.d.ts +14 -0
- package/ts_build/tests/manual/ycmd/test-typescript-sample.js +20 -0
- package/ts_build/tests/manual/ycmd/test-typescript-sample.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_advanced_features.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_advanced_features.js +297 -0
- package/ts_build/tests/manual/ycmd/test_advanced_features.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_advanced_with_tools.d.ts +3 -0
- package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js +262 -0
- package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js +186 -0
- package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js +174 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_fix.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js +106 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_simple.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js +104 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_timing.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js +119 -0
- package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_discover_commands.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_discover_commands.js +243 -0
- package/ts_build/tests/manual/ycmd/test_discover_commands.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_endpoints.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_endpoints.js +120 -0
- package/ts_build/tests/manual/ycmd/test_endpoints.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_final_comprehensive.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_final_comprehensive.js +221 -0
- package/ts_build/tests/manual/ycmd/test_final_comprehensive.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_final_validation.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_final_validation.js +160 -0
- package/ts_build/tests/manual/ycmd/test_final_validation.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js +37 -0
- package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_server_manager.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_server_manager.js +38 -0
- package/ts_build/tests/manual/ycmd/test_server_manager.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_simple_debug.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_simple_debug.js +99 -0
- package/ts_build/tests/manual/ycmd/test_simple_debug.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_tsserver_workflow.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js +128 -0
- package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_typescript_simple.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_typescript_simple.js +66 -0
- package/ts_build/tests/manual/ycmd/test_typescript_simple.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_typescript_ycmd.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js +105 -0
- package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_workspace_config.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_workspace_config.js +89 -0
- package/ts_build/tests/manual/ycmd/test_workspace_config.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js +130 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.d.ts +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js +83 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_direct.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_direct.js +149 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_direct.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_experiment.d.ts +15 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js +58 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_final.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_final.js +195 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_final.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_integration.d.ts +3 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_integration.js +110 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_integration.js.map +1 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_simple.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_simple.js +36 -0
- package/ts_build/tests/manual/ycmd/test_ycmd_simple.js.map +1 -0
- package/ts_build/tests/manual/ycmd/working_simple_test.d.ts +2 -0
- package/ts_build/tests/manual/ycmd/working_simple_test.js +134 -0
- package/ts_build/tests/manual/ycmd/working_simple_test.js.map +1 -0
- package/tsconfig.json +3 -1
|
@@ -0,0 +1,1920 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"language": "javascript",
|
|
4
|
+
"maxExercises": 10,
|
|
5
|
+
"model": "qwen/qwen3-30b-a3b-2507",
|
|
6
|
+
"provider": "lms",
|
|
7
|
+
"limits": {
|
|
8
|
+
"maxTurns": 30,
|
|
9
|
+
"maxTime": 300,
|
|
10
|
+
"maxCost": 1
|
|
11
|
+
},
|
|
12
|
+
"outputFile": "results.json"
|
|
13
|
+
},
|
|
14
|
+
"exercises": [
|
|
15
|
+
{
|
|
16
|
+
"exerciseName": "accumulate",
|
|
17
|
+
"status": "success",
|
|
18
|
+
"turns": 12,
|
|
19
|
+
"testResult": {
|
|
20
|
+
"passed": 5,
|
|
21
|
+
"failed": 0,
|
|
22
|
+
"total": 5,
|
|
23
|
+
"skipped": 0,
|
|
24
|
+
"success": true,
|
|
25
|
+
"output": "{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":1,\"numPassedTests\":5,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":5,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754328862977,\"success\":true,\"testResults\":[{\"assertionResults\":[{\"ancestorTitles\":[\"accumulate()\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"accumulate() accumulation empty\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"accumulation empty\"},{\"ancestorTitles\":[\"accumulate()\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"accumulate() accumulate squares\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"accumulate squares\"},{\"ancestorTitles\":[\"accumulate()\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"accumulate() accumulate upcases\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"accumulate upcases\"},{\"ancestorTitles\":[\"accumulate()\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"accumulate() accumulate reversed strings\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"accumulate reversed strings\"},{\"ancestorTitles\":[\"accumulate()\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"accumulate() accumulate recursively\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"accumulate recursively\"}],\"endTime\":1754328863074,\"message\":\"\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/accumulate/accumulate.spec.js\",\"startTime\":1754328862988,\"status\":\"passed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
26
|
+
"details": {
|
|
27
|
+
"numFailedTestSuites": 0,
|
|
28
|
+
"numFailedTests": 0,
|
|
29
|
+
"numPassedTestSuites": 1,
|
|
30
|
+
"numPassedTests": 5,
|
|
31
|
+
"numPendingTestSuites": 0,
|
|
32
|
+
"numPendingTests": 0,
|
|
33
|
+
"numRuntimeErrorTestSuites": 0,
|
|
34
|
+
"numTodoTests": 0,
|
|
35
|
+
"numTotalTestSuites": 1,
|
|
36
|
+
"numTotalTests": 5,
|
|
37
|
+
"openHandles": [],
|
|
38
|
+
"snapshot": {
|
|
39
|
+
"added": 0,
|
|
40
|
+
"didUpdate": false,
|
|
41
|
+
"failure": false,
|
|
42
|
+
"filesAdded": 0,
|
|
43
|
+
"filesRemoved": 0,
|
|
44
|
+
"filesRemovedList": [],
|
|
45
|
+
"filesUnmatched": 0,
|
|
46
|
+
"filesUpdated": 0,
|
|
47
|
+
"matched": 0,
|
|
48
|
+
"total": 0,
|
|
49
|
+
"unchecked": 0,
|
|
50
|
+
"uncheckedKeysByFile": [],
|
|
51
|
+
"unmatched": 0,
|
|
52
|
+
"updated": 0
|
|
53
|
+
},
|
|
54
|
+
"startTime": 1754328862977,
|
|
55
|
+
"success": true,
|
|
56
|
+
"testResults": [
|
|
57
|
+
{
|
|
58
|
+
"assertionResults": [
|
|
59
|
+
{
|
|
60
|
+
"ancestorTitles": [
|
|
61
|
+
"accumulate()"
|
|
62
|
+
],
|
|
63
|
+
"duration": 1,
|
|
64
|
+
"failureDetails": [],
|
|
65
|
+
"failureMessages": [],
|
|
66
|
+
"fullName": "accumulate() accumulation empty",
|
|
67
|
+
"invocations": 1,
|
|
68
|
+
"location": null,
|
|
69
|
+
"numPassingAsserts": 1,
|
|
70
|
+
"retryReasons": [],
|
|
71
|
+
"status": "passed",
|
|
72
|
+
"title": "accumulation empty"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"ancestorTitles": [
|
|
76
|
+
"accumulate()"
|
|
77
|
+
],
|
|
78
|
+
"duration": 0,
|
|
79
|
+
"failureDetails": [],
|
|
80
|
+
"failureMessages": [],
|
|
81
|
+
"fullName": "accumulate() accumulate squares",
|
|
82
|
+
"invocations": 1,
|
|
83
|
+
"location": null,
|
|
84
|
+
"numPassingAsserts": 1,
|
|
85
|
+
"retryReasons": [],
|
|
86
|
+
"status": "passed",
|
|
87
|
+
"title": "accumulate squares"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"ancestorTitles": [
|
|
91
|
+
"accumulate()"
|
|
92
|
+
],
|
|
93
|
+
"duration": 0,
|
|
94
|
+
"failureDetails": [],
|
|
95
|
+
"failureMessages": [],
|
|
96
|
+
"fullName": "accumulate() accumulate upcases",
|
|
97
|
+
"invocations": 1,
|
|
98
|
+
"location": null,
|
|
99
|
+
"numPassingAsserts": 1,
|
|
100
|
+
"retryReasons": [],
|
|
101
|
+
"status": "passed",
|
|
102
|
+
"title": "accumulate upcases"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"ancestorTitles": [
|
|
106
|
+
"accumulate()"
|
|
107
|
+
],
|
|
108
|
+
"duration": 0,
|
|
109
|
+
"failureDetails": [],
|
|
110
|
+
"failureMessages": [],
|
|
111
|
+
"fullName": "accumulate() accumulate reversed strings",
|
|
112
|
+
"invocations": 1,
|
|
113
|
+
"location": null,
|
|
114
|
+
"numPassingAsserts": 1,
|
|
115
|
+
"retryReasons": [],
|
|
116
|
+
"status": "passed",
|
|
117
|
+
"title": "accumulate reversed strings"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"ancestorTitles": [
|
|
121
|
+
"accumulate()"
|
|
122
|
+
],
|
|
123
|
+
"duration": 1,
|
|
124
|
+
"failureDetails": [],
|
|
125
|
+
"failureMessages": [],
|
|
126
|
+
"fullName": "accumulate() accumulate recursively",
|
|
127
|
+
"invocations": 1,
|
|
128
|
+
"location": null,
|
|
129
|
+
"numPassingAsserts": 1,
|
|
130
|
+
"retryReasons": [],
|
|
131
|
+
"status": "passed",
|
|
132
|
+
"title": "accumulate recursively"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"endTime": 1754328863074,
|
|
136
|
+
"message": "",
|
|
137
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/accumulate/accumulate.spec.js",
|
|
138
|
+
"startTime": 1754328862988,
|
|
139
|
+
"status": "passed",
|
|
140
|
+
"summary": ""
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"wasInterrupted": false
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"timeElapsed": 105.243,
|
|
147
|
+
"cost": 0,
|
|
148
|
+
"startTime": "2025-08-04T17:32:37.841Z",
|
|
149
|
+
"endTime": "2025-08-04T17:34:23.084Z",
|
|
150
|
+
"finalOutput": "I've successfully implemented the accumulate operation as required. The solution:\n\n1. Takes a collection and an operation function as parameters\n2. Uses a simple for loop to iterate through each element\n3. Applies the operation to each element and builds a new collection with the results\n4. Returns the new collection without using any built-in map/fmap functionality\n\nAll test cases pass successfully, including:\n- Empty collection handling\n- Squaring numbers (1, 2, 3 → 1, 4, 9)\n- Converting strings to uppercase\n- Reversing strings\n- Nested accumulation (creating arrays of combined characters)\n\nThe implementation meets all requirements and works correctly across all test cases."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"exerciseName": "acronym",
|
|
154
|
+
"status": "success",
|
|
155
|
+
"turns": 18,
|
|
156
|
+
"testResult": {
|
|
157
|
+
"passed": 0,
|
|
158
|
+
"failed": 0,
|
|
159
|
+
"total": 0,
|
|
160
|
+
"skipped": 0,
|
|
161
|
+
"success": false,
|
|
162
|
+
"output": "{\"numFailedTestSuites\":1,\"numFailedTests\":0,\"numPassedTestSuites\":0,\"numPassedTests\":0,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":1,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":0,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754329175456,\"success\":false,\"testResults\":[{\"assertionResults\":[],\"coverage\":{},\"endTime\":1754329175798,\"message\":\" ● Test suite failed to run\\n\\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/acronym/acronym.js: Unexpected token, expected \\\",\\\" (11:64)\\n\\n 9 |\\n 10 | // Remove all punctuation except spaces and hyphens\\n > 11 | const cleanedPhrase = normalizedPhrase.replace(/[\\\\p{P}]/gu, '';\\n | ^\\n 12 |\\n 13 | // Split by whitespace and take the first letter of each word\\n 14 | const acronym = cleanedPhrase\\n\\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\\n > 2 | import { parse } from './acronym';\\n | ^\\n 3 |\\n 4 | describe('Acronyms are produced from', () => {\\n 5 | // basic\\n\\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\\n at Parser.raise [as unexpected] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1543:16)\\n at Parser.unexpected [as expect] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/util.ts:157:12)\\n at Parser.expect [as parseCallExpressionArguments] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:1023:14)\\n at Parser.parseCallExpressionArguments [as parseCoverCallAndAsyncArrowHead] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:914:29)\\n at Parser.parseCoverCallAndAsyncArrowHead [as parseSubscript] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:796:19)\\n at Parser.parseSubscript [as parseSubscripts] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:755:19)\\n at Parser.parseSubscripts [as parseExprSubscripts] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:740:17)\\n at Parser.parseExprSubscripts [as parseUpdate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:713:21)\\n at Parser.parseUpdate [as parseMaybeUnary] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:675:23)\\n at Parser.parseMaybeUnary [as parseMaybeUnaryOrPrivate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:409:14)\\n at Parser.parseMaybeUnaryOrPrivate [as parseExprOps] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:421:23)\\n at Parser.parseExprOps [as parseMaybeConditional] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:376:23)\\n at Parser.parseMaybeConditional [as parseMaybeAssign] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:301:21)\\n at parseMaybeAssign (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:257:12)\\n at Parser.callback [as allowInAnd] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:3187:16)\\n at Parser.allowInAnd [as parseMaybeAssignAllowIn] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:256:17)\\n at Parser.parseMaybeAssignAllowIn [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1582:18)\\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\\n at Parser.parseStatementListItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1439:16)\\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\\n at Parser.parseBlockBody [as parseBlock] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1380:10)\\n at Parser.parseBlock [as parseFunctionBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:2616:24)\\n at Parser.parseFunctionBody [as parseArrowExpression] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:2553:10)\\n at Parser.parseArrowExpression [as parseParenAndDistinguishExpression] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:1837:12)\\n at Parser.parseParenAndDistinguishExpression [as parseExprAtom] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:1162:21)\\n at Parser.parseExprAtom [as parseExprSubscripts] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:734:23)\\n at Parser.parseExprSubscripts [as parseUpdate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:713:21)\\n at Parser.parseUpdate [as parseMaybeUnary] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:675:23)\\n at Parser.parseMaybeUnary [as parseMaybeUnaryOrPrivate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:409:14)\\n at Parser.parseMaybeUnaryOrPrivate [as parseExprOps] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:421:23)\\n at Parser.parseExprOps [as parseMaybeConditional] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:376:23)\\n at Parser.parseMaybeConditional [as parseMaybeAssign] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:301:21)\\n at parseMaybeAssign (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:257:12)\\n at Parser.callback [as allowInAnd] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:3187:16)\\n at Parser.allowInAnd [as parseMaybeAssignAllowIn] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:256:17)\\n at Parser.parseMaybeAssignAllowIn [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1582:18)\\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\\n at Parser.parseStatementListItem (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2630:17)\\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\\n at parser.next (<anonymous>)\\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\\n at normalizeFile.next (<anonymous>)\\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\\n at run.next (<anonymous>)\\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\\n at transform.next (<anonymous>)\\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\\n at Object.require (acronym.spec.js:2:1)\\n\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/acronym/acronym.spec.js\",\"startTime\":1754329175798,\"status\":\"failed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
163
|
+
"details": {
|
|
164
|
+
"numFailedTestSuites": 1,
|
|
165
|
+
"numFailedTests": 0,
|
|
166
|
+
"numPassedTestSuites": 0,
|
|
167
|
+
"numPassedTests": 0,
|
|
168
|
+
"numPendingTestSuites": 0,
|
|
169
|
+
"numPendingTests": 0,
|
|
170
|
+
"numRuntimeErrorTestSuites": 1,
|
|
171
|
+
"numTodoTests": 0,
|
|
172
|
+
"numTotalTestSuites": 1,
|
|
173
|
+
"numTotalTests": 0,
|
|
174
|
+
"openHandles": [],
|
|
175
|
+
"snapshot": {
|
|
176
|
+
"added": 0,
|
|
177
|
+
"didUpdate": false,
|
|
178
|
+
"failure": false,
|
|
179
|
+
"filesAdded": 0,
|
|
180
|
+
"filesRemoved": 0,
|
|
181
|
+
"filesRemovedList": [],
|
|
182
|
+
"filesUnmatched": 0,
|
|
183
|
+
"filesUpdated": 0,
|
|
184
|
+
"matched": 0,
|
|
185
|
+
"total": 0,
|
|
186
|
+
"unchecked": 0,
|
|
187
|
+
"uncheckedKeysByFile": [],
|
|
188
|
+
"unmatched": 0,
|
|
189
|
+
"updated": 0
|
|
190
|
+
},
|
|
191
|
+
"startTime": 1754329175456,
|
|
192
|
+
"success": false,
|
|
193
|
+
"testResults": [
|
|
194
|
+
{
|
|
195
|
+
"assertionResults": [],
|
|
196
|
+
"coverage": {},
|
|
197
|
+
"endTime": 1754329175798,
|
|
198
|
+
"message": " ● Test suite failed to run\n\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/acronym/acronym.js: Unexpected token, expected \",\" (11:64)\n\n 9 |\n 10 | // Remove all punctuation except spaces and hyphens\n > 11 | const cleanedPhrase = normalizedPhrase.replace(/[\\p{P}]/gu, '';\n | ^\n 12 |\n 13 | // Split by whitespace and take the first letter of each word\n 14 | const acronym = cleanedPhrase\n\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\n > 2 | import { parse } from './acronym';\n | ^\n 3 |\n 4 | describe('Acronyms are produced from', () => {\n 5 | // basic\n\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\n at Parser.raise [as unexpected] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1543:16)\n at Parser.unexpected [as expect] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/util.ts:157:12)\n at Parser.expect [as parseCallExpressionArguments] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:1023:14)\n at Parser.parseCallExpressionArguments [as parseCoverCallAndAsyncArrowHead] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:914:29)\n at Parser.parseCoverCallAndAsyncArrowHead [as parseSubscript] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:796:19)\n at Parser.parseSubscript [as parseSubscripts] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:755:19)\n at Parser.parseSubscripts [as parseExprSubscripts] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:740:17)\n at Parser.parseExprSubscripts [as parseUpdate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:713:21)\n at Parser.parseUpdate [as parseMaybeUnary] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:675:23)\n at Parser.parseMaybeUnary [as parseMaybeUnaryOrPrivate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:409:14)\n at Parser.parseMaybeUnaryOrPrivate [as parseExprOps] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:421:23)\n at Parser.parseExprOps [as parseMaybeConditional] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:376:23)\n at Parser.parseMaybeConditional [as parseMaybeAssign] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:301:21)\n at parseMaybeAssign (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:257:12)\n at Parser.callback [as allowInAnd] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:3187:16)\n at Parser.allowInAnd [as parseMaybeAssignAllowIn] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:256:17)\n at Parser.parseMaybeAssignAllowIn [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1582:18)\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\n at Parser.parseStatementListItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1439:16)\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\n at Parser.parseBlockBody [as parseBlock] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1380:10)\n at Parser.parseBlock [as parseFunctionBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:2616:24)\n at Parser.parseFunctionBody [as parseArrowExpression] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:2553:10)\n at Parser.parseArrowExpression [as parseParenAndDistinguishExpression] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:1837:12)\n at Parser.parseParenAndDistinguishExpression [as parseExprAtom] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:1162:21)\n at Parser.parseExprAtom [as parseExprSubscripts] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:734:23)\n at Parser.parseExprSubscripts [as parseUpdate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:713:21)\n at Parser.parseUpdate [as parseMaybeUnary] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:675:23)\n at Parser.parseMaybeUnary [as parseMaybeUnaryOrPrivate] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:409:14)\n at Parser.parseMaybeUnaryOrPrivate [as parseExprOps] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:421:23)\n at Parser.parseExprOps [as parseMaybeConditional] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:376:23)\n at Parser.parseMaybeConditional [as parseMaybeAssign] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:301:21)\n at parseMaybeAssign (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:257:12)\n at Parser.callback [as allowInAnd] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:3187:16)\n at Parser.allowInAnd [as parseMaybeAssignAllowIn] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/expression.ts:256:17)\n at Parser.parseMaybeAssignAllowIn [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1582:18)\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\n at Parser.parseStatementListItem (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2630:17)\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\n at parser.next (<anonymous>)\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\n at normalizeFile.next (<anonymous>)\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\n at run.next (<anonymous>)\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\n at transform.next (<anonymous>)\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\n at Object.require (acronym.spec.js:2:1)\n",
|
|
199
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/acronym/acronym.spec.js",
|
|
200
|
+
"startTime": 1754329175798,
|
|
201
|
+
"status": "failed",
|
|
202
|
+
"summary": ""
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
"wasInterrupted": false
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"timeElapsed": 312.695,
|
|
209
|
+
"cost": 0,
|
|
210
|
+
"startTime": "2025-08-04T17:34:23.117Z",
|
|
211
|
+
"endTime": "2025-08-04T17:39:35.812Z",
|
|
212
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 18/30, Cost: $0.0000/$1.0000, Runtime: 311790ms/300000ms"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"exerciseName": "affine-cipher",
|
|
216
|
+
"status": "success",
|
|
217
|
+
"turns": 15,
|
|
218
|
+
"testResult": {
|
|
219
|
+
"passed": 2,
|
|
220
|
+
"failed": 0,
|
|
221
|
+
"total": 16,
|
|
222
|
+
"skipped": 14,
|
|
223
|
+
"success": true,
|
|
224
|
+
"output": "{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":1,\"numPassedTests\":2,\"numPendingTestSuites\":0,\"numPendingTests\":14,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":16,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754329514106,\"success\":true,\"testResults\":[{\"assertionResults\":[{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode yes\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode yes\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode no\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode no\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode OMG\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode OMG\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode O M G\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode O M G\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode mindblowingly\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode mindblowingly\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode numbers\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode numbers\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode deep thought\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode deep thought\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode all the letters\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode all the letters\"},{\"ancestorTitles\":[\"Affine cipher\",\"encode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher encode encode with a not coprime to m\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"encode with a not coprime to m\"},{\"ancestorTitles\":[\"Affine cipher\",\"decode\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher decode decode exercism\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decode exercism\"},{\"ancestorTitles\":[\"Affine cipher\",\"decode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher decode decode a sentence\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"decode a sentence\"},{\"ancestorTitles\":[\"Affine cipher\",\"decode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher decode decode numbers\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"decode numbers\"},{\"ancestorTitles\":[\"Affine cipher\",\"decode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher decode decode all the letters\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"decode all the letters\"},{\"ancestorTitles\":[\"Affine cipher\",\"decode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher decode decode with no spaces in input\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"decode with no spaces in input\"},{\"ancestorTitles\":[\"Affine cipher\",\"decode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher decode decode with too many spaces\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"decode with too many spaces\"},{\"ancestorTitles\":[\"Affine cipher\",\"decode\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Affine cipher decode decode with a not coprime to m\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"decode with a not coprime to m\"}],\"endTime\":1754329514205,\"message\":\"\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/affine-cipher/affine-cipher.spec.js\",\"startTime\":1754329514117,\"status\":\"focused\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
225
|
+
"details": {
|
|
226
|
+
"numFailedTestSuites": 0,
|
|
227
|
+
"numFailedTests": 0,
|
|
228
|
+
"numPassedTestSuites": 1,
|
|
229
|
+
"numPassedTests": 2,
|
|
230
|
+
"numPendingTestSuites": 0,
|
|
231
|
+
"numPendingTests": 14,
|
|
232
|
+
"numRuntimeErrorTestSuites": 0,
|
|
233
|
+
"numTodoTests": 0,
|
|
234
|
+
"numTotalTestSuites": 1,
|
|
235
|
+
"numTotalTests": 16,
|
|
236
|
+
"openHandles": [],
|
|
237
|
+
"snapshot": {
|
|
238
|
+
"added": 0,
|
|
239
|
+
"didUpdate": false,
|
|
240
|
+
"failure": false,
|
|
241
|
+
"filesAdded": 0,
|
|
242
|
+
"filesRemoved": 0,
|
|
243
|
+
"filesRemovedList": [],
|
|
244
|
+
"filesUnmatched": 0,
|
|
245
|
+
"filesUpdated": 0,
|
|
246
|
+
"matched": 0,
|
|
247
|
+
"total": 0,
|
|
248
|
+
"unchecked": 0,
|
|
249
|
+
"uncheckedKeysByFile": [],
|
|
250
|
+
"unmatched": 0,
|
|
251
|
+
"updated": 0
|
|
252
|
+
},
|
|
253
|
+
"startTime": 1754329514106,
|
|
254
|
+
"success": true,
|
|
255
|
+
"testResults": [
|
|
256
|
+
{
|
|
257
|
+
"assertionResults": [
|
|
258
|
+
{
|
|
259
|
+
"ancestorTitles": [
|
|
260
|
+
"Affine cipher",
|
|
261
|
+
"encode"
|
|
262
|
+
],
|
|
263
|
+
"duration": 1,
|
|
264
|
+
"failureDetails": [],
|
|
265
|
+
"failureMessages": [],
|
|
266
|
+
"fullName": "Affine cipher encode encode yes",
|
|
267
|
+
"invocations": 1,
|
|
268
|
+
"location": null,
|
|
269
|
+
"numPassingAsserts": 1,
|
|
270
|
+
"retryReasons": [],
|
|
271
|
+
"status": "passed",
|
|
272
|
+
"title": "encode yes"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"ancestorTitles": [
|
|
276
|
+
"Affine cipher",
|
|
277
|
+
"encode"
|
|
278
|
+
],
|
|
279
|
+
"duration": null,
|
|
280
|
+
"failureDetails": [],
|
|
281
|
+
"failureMessages": [],
|
|
282
|
+
"fullName": "Affine cipher encode encode no",
|
|
283
|
+
"invocations": 1,
|
|
284
|
+
"location": null,
|
|
285
|
+
"numPassingAsserts": 0,
|
|
286
|
+
"retryReasons": [],
|
|
287
|
+
"status": "pending",
|
|
288
|
+
"title": "encode no"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"ancestorTitles": [
|
|
292
|
+
"Affine cipher",
|
|
293
|
+
"encode"
|
|
294
|
+
],
|
|
295
|
+
"duration": null,
|
|
296
|
+
"failureDetails": [],
|
|
297
|
+
"failureMessages": [],
|
|
298
|
+
"fullName": "Affine cipher encode encode OMG",
|
|
299
|
+
"invocations": 1,
|
|
300
|
+
"location": null,
|
|
301
|
+
"numPassingAsserts": 0,
|
|
302
|
+
"retryReasons": [],
|
|
303
|
+
"status": "pending",
|
|
304
|
+
"title": "encode OMG"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"ancestorTitles": [
|
|
308
|
+
"Affine cipher",
|
|
309
|
+
"encode"
|
|
310
|
+
],
|
|
311
|
+
"duration": null,
|
|
312
|
+
"failureDetails": [],
|
|
313
|
+
"failureMessages": [],
|
|
314
|
+
"fullName": "Affine cipher encode encode O M G",
|
|
315
|
+
"invocations": 1,
|
|
316
|
+
"location": null,
|
|
317
|
+
"numPassingAsserts": 0,
|
|
318
|
+
"retryReasons": [],
|
|
319
|
+
"status": "pending",
|
|
320
|
+
"title": "encode O M G"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"ancestorTitles": [
|
|
324
|
+
"Affine cipher",
|
|
325
|
+
"encode"
|
|
326
|
+
],
|
|
327
|
+
"duration": null,
|
|
328
|
+
"failureDetails": [],
|
|
329
|
+
"failureMessages": [],
|
|
330
|
+
"fullName": "Affine cipher encode encode mindblowingly",
|
|
331
|
+
"invocations": 1,
|
|
332
|
+
"location": null,
|
|
333
|
+
"numPassingAsserts": 0,
|
|
334
|
+
"retryReasons": [],
|
|
335
|
+
"status": "pending",
|
|
336
|
+
"title": "encode mindblowingly"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"ancestorTitles": [
|
|
340
|
+
"Affine cipher",
|
|
341
|
+
"encode"
|
|
342
|
+
],
|
|
343
|
+
"duration": null,
|
|
344
|
+
"failureDetails": [],
|
|
345
|
+
"failureMessages": [],
|
|
346
|
+
"fullName": "Affine cipher encode encode numbers",
|
|
347
|
+
"invocations": 1,
|
|
348
|
+
"location": null,
|
|
349
|
+
"numPassingAsserts": 0,
|
|
350
|
+
"retryReasons": [],
|
|
351
|
+
"status": "pending",
|
|
352
|
+
"title": "encode numbers"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"ancestorTitles": [
|
|
356
|
+
"Affine cipher",
|
|
357
|
+
"encode"
|
|
358
|
+
],
|
|
359
|
+
"duration": null,
|
|
360
|
+
"failureDetails": [],
|
|
361
|
+
"failureMessages": [],
|
|
362
|
+
"fullName": "Affine cipher encode encode deep thought",
|
|
363
|
+
"invocations": 1,
|
|
364
|
+
"location": null,
|
|
365
|
+
"numPassingAsserts": 0,
|
|
366
|
+
"retryReasons": [],
|
|
367
|
+
"status": "pending",
|
|
368
|
+
"title": "encode deep thought"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"ancestorTitles": [
|
|
372
|
+
"Affine cipher",
|
|
373
|
+
"encode"
|
|
374
|
+
],
|
|
375
|
+
"duration": null,
|
|
376
|
+
"failureDetails": [],
|
|
377
|
+
"failureMessages": [],
|
|
378
|
+
"fullName": "Affine cipher encode encode all the letters",
|
|
379
|
+
"invocations": 1,
|
|
380
|
+
"location": null,
|
|
381
|
+
"numPassingAsserts": 0,
|
|
382
|
+
"retryReasons": [],
|
|
383
|
+
"status": "pending",
|
|
384
|
+
"title": "encode all the letters"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"ancestorTitles": [
|
|
388
|
+
"Affine cipher",
|
|
389
|
+
"encode"
|
|
390
|
+
],
|
|
391
|
+
"duration": null,
|
|
392
|
+
"failureDetails": [],
|
|
393
|
+
"failureMessages": [],
|
|
394
|
+
"fullName": "Affine cipher encode encode with a not coprime to m",
|
|
395
|
+
"invocations": 1,
|
|
396
|
+
"location": null,
|
|
397
|
+
"numPassingAsserts": 0,
|
|
398
|
+
"retryReasons": [],
|
|
399
|
+
"status": "pending",
|
|
400
|
+
"title": "encode with a not coprime to m"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"ancestorTitles": [
|
|
404
|
+
"Affine cipher",
|
|
405
|
+
"decode"
|
|
406
|
+
],
|
|
407
|
+
"duration": 1,
|
|
408
|
+
"failureDetails": [],
|
|
409
|
+
"failureMessages": [],
|
|
410
|
+
"fullName": "Affine cipher decode decode exercism",
|
|
411
|
+
"invocations": 1,
|
|
412
|
+
"location": null,
|
|
413
|
+
"numPassingAsserts": 1,
|
|
414
|
+
"retryReasons": [],
|
|
415
|
+
"status": "passed",
|
|
416
|
+
"title": "decode exercism"
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"ancestorTitles": [
|
|
420
|
+
"Affine cipher",
|
|
421
|
+
"decode"
|
|
422
|
+
],
|
|
423
|
+
"duration": null,
|
|
424
|
+
"failureDetails": [],
|
|
425
|
+
"failureMessages": [],
|
|
426
|
+
"fullName": "Affine cipher decode decode a sentence",
|
|
427
|
+
"invocations": 1,
|
|
428
|
+
"location": null,
|
|
429
|
+
"numPassingAsserts": 0,
|
|
430
|
+
"retryReasons": [],
|
|
431
|
+
"status": "pending",
|
|
432
|
+
"title": "decode a sentence"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"ancestorTitles": [
|
|
436
|
+
"Affine cipher",
|
|
437
|
+
"decode"
|
|
438
|
+
],
|
|
439
|
+
"duration": null,
|
|
440
|
+
"failureDetails": [],
|
|
441
|
+
"failureMessages": [],
|
|
442
|
+
"fullName": "Affine cipher decode decode numbers",
|
|
443
|
+
"invocations": 1,
|
|
444
|
+
"location": null,
|
|
445
|
+
"numPassingAsserts": 0,
|
|
446
|
+
"retryReasons": [],
|
|
447
|
+
"status": "pending",
|
|
448
|
+
"title": "decode numbers"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"ancestorTitles": [
|
|
452
|
+
"Affine cipher",
|
|
453
|
+
"decode"
|
|
454
|
+
],
|
|
455
|
+
"duration": null,
|
|
456
|
+
"failureDetails": [],
|
|
457
|
+
"failureMessages": [],
|
|
458
|
+
"fullName": "Affine cipher decode decode all the letters",
|
|
459
|
+
"invocations": 1,
|
|
460
|
+
"location": null,
|
|
461
|
+
"numPassingAsserts": 0,
|
|
462
|
+
"retryReasons": [],
|
|
463
|
+
"status": "pending",
|
|
464
|
+
"title": "decode all the letters"
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"ancestorTitles": [
|
|
468
|
+
"Affine cipher",
|
|
469
|
+
"decode"
|
|
470
|
+
],
|
|
471
|
+
"duration": null,
|
|
472
|
+
"failureDetails": [],
|
|
473
|
+
"failureMessages": [],
|
|
474
|
+
"fullName": "Affine cipher decode decode with no spaces in input",
|
|
475
|
+
"invocations": 1,
|
|
476
|
+
"location": null,
|
|
477
|
+
"numPassingAsserts": 0,
|
|
478
|
+
"retryReasons": [],
|
|
479
|
+
"status": "pending",
|
|
480
|
+
"title": "decode with no spaces in input"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"ancestorTitles": [
|
|
484
|
+
"Affine cipher",
|
|
485
|
+
"decode"
|
|
486
|
+
],
|
|
487
|
+
"duration": null,
|
|
488
|
+
"failureDetails": [],
|
|
489
|
+
"failureMessages": [],
|
|
490
|
+
"fullName": "Affine cipher decode decode with too many spaces",
|
|
491
|
+
"invocations": 1,
|
|
492
|
+
"location": null,
|
|
493
|
+
"numPassingAsserts": 0,
|
|
494
|
+
"retryReasons": [],
|
|
495
|
+
"status": "pending",
|
|
496
|
+
"title": "decode with too many spaces"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"ancestorTitles": [
|
|
500
|
+
"Affine cipher",
|
|
501
|
+
"decode"
|
|
502
|
+
],
|
|
503
|
+
"duration": null,
|
|
504
|
+
"failureDetails": [],
|
|
505
|
+
"failureMessages": [],
|
|
506
|
+
"fullName": "Affine cipher decode decode with a not coprime to m",
|
|
507
|
+
"invocations": 1,
|
|
508
|
+
"location": null,
|
|
509
|
+
"numPassingAsserts": 0,
|
|
510
|
+
"retryReasons": [],
|
|
511
|
+
"status": "pending",
|
|
512
|
+
"title": "decode with a not coprime to m"
|
|
513
|
+
}
|
|
514
|
+
],
|
|
515
|
+
"endTime": 1754329514205,
|
|
516
|
+
"message": "",
|
|
517
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/affine-cipher/affine-cipher.spec.js",
|
|
518
|
+
"startTime": 1754329514117,
|
|
519
|
+
"status": "focused",
|
|
520
|
+
"summary": ""
|
|
521
|
+
}
|
|
522
|
+
],
|
|
523
|
+
"wasInterrupted": false
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
"timeElapsed": 338.381,
|
|
527
|
+
"cost": 0,
|
|
528
|
+
"startTime": "2025-08-04T17:39:35.834Z",
|
|
529
|
+
"endTime": "2025-08-04T17:45:14.215Z",
|
|
530
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 15/30, Cost: $0.0000/$1.0000, Runtime: 337876ms/300000ms"
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"exerciseName": "all-your-base",
|
|
534
|
+
"status": "success",
|
|
535
|
+
"turns": 10,
|
|
536
|
+
"testResult": {
|
|
537
|
+
"passed": 21,
|
|
538
|
+
"failed": 0,
|
|
539
|
+
"total": 21,
|
|
540
|
+
"skipped": 0,
|
|
541
|
+
"success": true,
|
|
542
|
+
"output": "{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":1,\"numPassedTests\":21,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":21,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754329654167,\"success\":true,\"testResults\":[{\"assertionResults\":[{\"ancestorTitles\":[\"Converter\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter single bit one to decimal\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"single bit one to decimal\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter binary to single decimal\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"binary to single decimal\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter single decimal to binary\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"single decimal to binary\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter binary to multiple decimal\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"binary to multiple decimal\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter decimal to binary\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decimal to binary\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter trinary to hexadecimal\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"trinary to hexadecimal\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter hexadecimal to trinary\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"hexadecimal to trinary\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter 15-bit integer\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"15-bit integer\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter empty list\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"empty list\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter single zero\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"single zero\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter multiple zeros\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"multiple zeros\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter leading zeros\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"leading zeros\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter negative digit\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"negative digit\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter invalid positive digit\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"invalid positive digit\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter first base is one\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"first base is one\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter second base is one\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"second base is one\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter first base is zero\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"first base is zero\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter second base is zero\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"second base is zero\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter first base is negative\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"first base is negative\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter second base is negative\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"second base is negative\"},{\"ancestorTitles\":[\"Converter\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Converter both bases are negative\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"both bases are negative\"}],\"endTime\":1754329654271,\"message\":\"\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/all-your-base/all-your-base.spec.js\",\"startTime\":1754329654179,\"status\":\"passed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
543
|
+
"details": {
|
|
544
|
+
"numFailedTestSuites": 0,
|
|
545
|
+
"numFailedTests": 0,
|
|
546
|
+
"numPassedTestSuites": 1,
|
|
547
|
+
"numPassedTests": 21,
|
|
548
|
+
"numPendingTestSuites": 0,
|
|
549
|
+
"numPendingTests": 0,
|
|
550
|
+
"numRuntimeErrorTestSuites": 0,
|
|
551
|
+
"numTodoTests": 0,
|
|
552
|
+
"numTotalTestSuites": 1,
|
|
553
|
+
"numTotalTests": 21,
|
|
554
|
+
"openHandles": [],
|
|
555
|
+
"snapshot": {
|
|
556
|
+
"added": 0,
|
|
557
|
+
"didUpdate": false,
|
|
558
|
+
"failure": false,
|
|
559
|
+
"filesAdded": 0,
|
|
560
|
+
"filesRemoved": 0,
|
|
561
|
+
"filesRemovedList": [],
|
|
562
|
+
"filesUnmatched": 0,
|
|
563
|
+
"filesUpdated": 0,
|
|
564
|
+
"matched": 0,
|
|
565
|
+
"total": 0,
|
|
566
|
+
"unchecked": 0,
|
|
567
|
+
"uncheckedKeysByFile": [],
|
|
568
|
+
"unmatched": 0,
|
|
569
|
+
"updated": 0
|
|
570
|
+
},
|
|
571
|
+
"startTime": 1754329654167,
|
|
572
|
+
"success": true,
|
|
573
|
+
"testResults": [
|
|
574
|
+
{
|
|
575
|
+
"assertionResults": [
|
|
576
|
+
{
|
|
577
|
+
"ancestorTitles": [
|
|
578
|
+
"Converter"
|
|
579
|
+
],
|
|
580
|
+
"duration": 1,
|
|
581
|
+
"failureDetails": [],
|
|
582
|
+
"failureMessages": [],
|
|
583
|
+
"fullName": "Converter single bit one to decimal",
|
|
584
|
+
"invocations": 1,
|
|
585
|
+
"location": null,
|
|
586
|
+
"numPassingAsserts": 1,
|
|
587
|
+
"retryReasons": [],
|
|
588
|
+
"status": "passed",
|
|
589
|
+
"title": "single bit one to decimal"
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"ancestorTitles": [
|
|
593
|
+
"Converter"
|
|
594
|
+
],
|
|
595
|
+
"duration": 0,
|
|
596
|
+
"failureDetails": [],
|
|
597
|
+
"failureMessages": [],
|
|
598
|
+
"fullName": "Converter binary to single decimal",
|
|
599
|
+
"invocations": 1,
|
|
600
|
+
"location": null,
|
|
601
|
+
"numPassingAsserts": 1,
|
|
602
|
+
"retryReasons": [],
|
|
603
|
+
"status": "passed",
|
|
604
|
+
"title": "binary to single decimal"
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"ancestorTitles": [
|
|
608
|
+
"Converter"
|
|
609
|
+
],
|
|
610
|
+
"duration": 0,
|
|
611
|
+
"failureDetails": [],
|
|
612
|
+
"failureMessages": [],
|
|
613
|
+
"fullName": "Converter single decimal to binary",
|
|
614
|
+
"invocations": 1,
|
|
615
|
+
"location": null,
|
|
616
|
+
"numPassingAsserts": 1,
|
|
617
|
+
"retryReasons": [],
|
|
618
|
+
"status": "passed",
|
|
619
|
+
"title": "single decimal to binary"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"ancestorTitles": [
|
|
623
|
+
"Converter"
|
|
624
|
+
],
|
|
625
|
+
"duration": 0,
|
|
626
|
+
"failureDetails": [],
|
|
627
|
+
"failureMessages": [],
|
|
628
|
+
"fullName": "Converter binary to multiple decimal",
|
|
629
|
+
"invocations": 1,
|
|
630
|
+
"location": null,
|
|
631
|
+
"numPassingAsserts": 1,
|
|
632
|
+
"retryReasons": [],
|
|
633
|
+
"status": "passed",
|
|
634
|
+
"title": "binary to multiple decimal"
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"ancestorTitles": [
|
|
638
|
+
"Converter"
|
|
639
|
+
],
|
|
640
|
+
"duration": 0,
|
|
641
|
+
"failureDetails": [],
|
|
642
|
+
"failureMessages": [],
|
|
643
|
+
"fullName": "Converter decimal to binary",
|
|
644
|
+
"invocations": 1,
|
|
645
|
+
"location": null,
|
|
646
|
+
"numPassingAsserts": 1,
|
|
647
|
+
"retryReasons": [],
|
|
648
|
+
"status": "passed",
|
|
649
|
+
"title": "decimal to binary"
|
|
650
|
+
},
|
|
651
|
+
{
|
|
652
|
+
"ancestorTitles": [
|
|
653
|
+
"Converter"
|
|
654
|
+
],
|
|
655
|
+
"duration": 0,
|
|
656
|
+
"failureDetails": [],
|
|
657
|
+
"failureMessages": [],
|
|
658
|
+
"fullName": "Converter trinary to hexadecimal",
|
|
659
|
+
"invocations": 1,
|
|
660
|
+
"location": null,
|
|
661
|
+
"numPassingAsserts": 1,
|
|
662
|
+
"retryReasons": [],
|
|
663
|
+
"status": "passed",
|
|
664
|
+
"title": "trinary to hexadecimal"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"ancestorTitles": [
|
|
668
|
+
"Converter"
|
|
669
|
+
],
|
|
670
|
+
"duration": 0,
|
|
671
|
+
"failureDetails": [],
|
|
672
|
+
"failureMessages": [],
|
|
673
|
+
"fullName": "Converter hexadecimal to trinary",
|
|
674
|
+
"invocations": 1,
|
|
675
|
+
"location": null,
|
|
676
|
+
"numPassingAsserts": 1,
|
|
677
|
+
"retryReasons": [],
|
|
678
|
+
"status": "passed",
|
|
679
|
+
"title": "hexadecimal to trinary"
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"ancestorTitles": [
|
|
683
|
+
"Converter"
|
|
684
|
+
],
|
|
685
|
+
"duration": 0,
|
|
686
|
+
"failureDetails": [],
|
|
687
|
+
"failureMessages": [],
|
|
688
|
+
"fullName": "Converter 15-bit integer",
|
|
689
|
+
"invocations": 1,
|
|
690
|
+
"location": null,
|
|
691
|
+
"numPassingAsserts": 1,
|
|
692
|
+
"retryReasons": [],
|
|
693
|
+
"status": "passed",
|
|
694
|
+
"title": "15-bit integer"
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
"ancestorTitles": [
|
|
698
|
+
"Converter"
|
|
699
|
+
],
|
|
700
|
+
"duration": 4,
|
|
701
|
+
"failureDetails": [],
|
|
702
|
+
"failureMessages": [],
|
|
703
|
+
"fullName": "Converter empty list",
|
|
704
|
+
"invocations": 1,
|
|
705
|
+
"location": null,
|
|
706
|
+
"numPassingAsserts": 1,
|
|
707
|
+
"retryReasons": [],
|
|
708
|
+
"status": "passed",
|
|
709
|
+
"title": "empty list"
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"ancestorTitles": [
|
|
713
|
+
"Converter"
|
|
714
|
+
],
|
|
715
|
+
"duration": 0,
|
|
716
|
+
"failureDetails": [],
|
|
717
|
+
"failureMessages": [],
|
|
718
|
+
"fullName": "Converter single zero",
|
|
719
|
+
"invocations": 1,
|
|
720
|
+
"location": null,
|
|
721
|
+
"numPassingAsserts": 1,
|
|
722
|
+
"retryReasons": [],
|
|
723
|
+
"status": "passed",
|
|
724
|
+
"title": "single zero"
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"ancestorTitles": [
|
|
728
|
+
"Converter"
|
|
729
|
+
],
|
|
730
|
+
"duration": 0,
|
|
731
|
+
"failureDetails": [],
|
|
732
|
+
"failureMessages": [],
|
|
733
|
+
"fullName": "Converter multiple zeros",
|
|
734
|
+
"invocations": 1,
|
|
735
|
+
"location": null,
|
|
736
|
+
"numPassingAsserts": 1,
|
|
737
|
+
"retryReasons": [],
|
|
738
|
+
"status": "passed",
|
|
739
|
+
"title": "multiple zeros"
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
"ancestorTitles": [
|
|
743
|
+
"Converter"
|
|
744
|
+
],
|
|
745
|
+
"duration": 0,
|
|
746
|
+
"failureDetails": [],
|
|
747
|
+
"failureMessages": [],
|
|
748
|
+
"fullName": "Converter leading zeros",
|
|
749
|
+
"invocations": 1,
|
|
750
|
+
"location": null,
|
|
751
|
+
"numPassingAsserts": 1,
|
|
752
|
+
"retryReasons": [],
|
|
753
|
+
"status": "passed",
|
|
754
|
+
"title": "leading zeros"
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"ancestorTitles": [
|
|
758
|
+
"Converter"
|
|
759
|
+
],
|
|
760
|
+
"duration": 1,
|
|
761
|
+
"failureDetails": [],
|
|
762
|
+
"failureMessages": [],
|
|
763
|
+
"fullName": "Converter negative digit",
|
|
764
|
+
"invocations": 1,
|
|
765
|
+
"location": null,
|
|
766
|
+
"numPassingAsserts": 1,
|
|
767
|
+
"retryReasons": [],
|
|
768
|
+
"status": "passed",
|
|
769
|
+
"title": "negative digit"
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
"ancestorTitles": [
|
|
773
|
+
"Converter"
|
|
774
|
+
],
|
|
775
|
+
"duration": 0,
|
|
776
|
+
"failureDetails": [],
|
|
777
|
+
"failureMessages": [],
|
|
778
|
+
"fullName": "Converter invalid positive digit",
|
|
779
|
+
"invocations": 1,
|
|
780
|
+
"location": null,
|
|
781
|
+
"numPassingAsserts": 1,
|
|
782
|
+
"retryReasons": [],
|
|
783
|
+
"status": "passed",
|
|
784
|
+
"title": "invalid positive digit"
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"ancestorTitles": [
|
|
788
|
+
"Converter"
|
|
789
|
+
],
|
|
790
|
+
"duration": 0,
|
|
791
|
+
"failureDetails": [],
|
|
792
|
+
"failureMessages": [],
|
|
793
|
+
"fullName": "Converter first base is one",
|
|
794
|
+
"invocations": 1,
|
|
795
|
+
"location": null,
|
|
796
|
+
"numPassingAsserts": 1,
|
|
797
|
+
"retryReasons": [],
|
|
798
|
+
"status": "passed",
|
|
799
|
+
"title": "first base is one"
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"ancestorTitles": [
|
|
803
|
+
"Converter"
|
|
804
|
+
],
|
|
805
|
+
"duration": 0,
|
|
806
|
+
"failureDetails": [],
|
|
807
|
+
"failureMessages": [],
|
|
808
|
+
"fullName": "Converter second base is one",
|
|
809
|
+
"invocations": 1,
|
|
810
|
+
"location": null,
|
|
811
|
+
"numPassingAsserts": 1,
|
|
812
|
+
"retryReasons": [],
|
|
813
|
+
"status": "passed",
|
|
814
|
+
"title": "second base is one"
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
"ancestorTitles": [
|
|
818
|
+
"Converter"
|
|
819
|
+
],
|
|
820
|
+
"duration": 1,
|
|
821
|
+
"failureDetails": [],
|
|
822
|
+
"failureMessages": [],
|
|
823
|
+
"fullName": "Converter first base is zero",
|
|
824
|
+
"invocations": 1,
|
|
825
|
+
"location": null,
|
|
826
|
+
"numPassingAsserts": 1,
|
|
827
|
+
"retryReasons": [],
|
|
828
|
+
"status": "passed",
|
|
829
|
+
"title": "first base is zero"
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
"ancestorTitles": [
|
|
833
|
+
"Converter"
|
|
834
|
+
],
|
|
835
|
+
"duration": 0,
|
|
836
|
+
"failureDetails": [],
|
|
837
|
+
"failureMessages": [],
|
|
838
|
+
"fullName": "Converter second base is zero",
|
|
839
|
+
"invocations": 1,
|
|
840
|
+
"location": null,
|
|
841
|
+
"numPassingAsserts": 1,
|
|
842
|
+
"retryReasons": [],
|
|
843
|
+
"status": "passed",
|
|
844
|
+
"title": "second base is zero"
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"ancestorTitles": [
|
|
848
|
+
"Converter"
|
|
849
|
+
],
|
|
850
|
+
"duration": 0,
|
|
851
|
+
"failureDetails": [],
|
|
852
|
+
"failureMessages": [],
|
|
853
|
+
"fullName": "Converter first base is negative",
|
|
854
|
+
"invocations": 1,
|
|
855
|
+
"location": null,
|
|
856
|
+
"numPassingAsserts": 1,
|
|
857
|
+
"retryReasons": [],
|
|
858
|
+
"status": "passed",
|
|
859
|
+
"title": "first base is negative"
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
"ancestorTitles": [
|
|
863
|
+
"Converter"
|
|
864
|
+
],
|
|
865
|
+
"duration": 0,
|
|
866
|
+
"failureDetails": [],
|
|
867
|
+
"failureMessages": [],
|
|
868
|
+
"fullName": "Converter second base is negative",
|
|
869
|
+
"invocations": 1,
|
|
870
|
+
"location": null,
|
|
871
|
+
"numPassingAsserts": 1,
|
|
872
|
+
"retryReasons": [],
|
|
873
|
+
"status": "passed",
|
|
874
|
+
"title": "second base is negative"
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"ancestorTitles": [
|
|
878
|
+
"Converter"
|
|
879
|
+
],
|
|
880
|
+
"duration": 0,
|
|
881
|
+
"failureDetails": [],
|
|
882
|
+
"failureMessages": [],
|
|
883
|
+
"fullName": "Converter both bases are negative",
|
|
884
|
+
"invocations": 1,
|
|
885
|
+
"location": null,
|
|
886
|
+
"numPassingAsserts": 1,
|
|
887
|
+
"retryReasons": [],
|
|
888
|
+
"status": "passed",
|
|
889
|
+
"title": "both bases are negative"
|
|
890
|
+
}
|
|
891
|
+
],
|
|
892
|
+
"endTime": 1754329654271,
|
|
893
|
+
"message": "",
|
|
894
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/all-your-base/all-your-base.spec.js",
|
|
895
|
+
"startTime": 1754329654179,
|
|
896
|
+
"status": "passed",
|
|
897
|
+
"summary": ""
|
|
898
|
+
}
|
|
899
|
+
],
|
|
900
|
+
"wasInterrupted": false
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
"timeElapsed": 140.05,
|
|
904
|
+
"cost": 0,
|
|
905
|
+
"startTime": "2025-08-04T17:45:14.230Z",
|
|
906
|
+
"endTime": "2025-08-04T17:47:34.280Z",
|
|
907
|
+
"finalOutput": "I've successfully implemented the base conversion functionality for the 'all-your-base' exercise. The solution handles all the required test cases correctly, including:\n\n1. Basic conversions between different bases (binary to decimal, decimal to binary, etc.)\n2. Edge cases like empty arrays, leading zeros, and invalid digits\n3. Error handling for invalid bases (less than 2)\n4. Proper handling of the single zero case\n\nAll 21 tests are now passing, confirming that the implementation works correctly for all scenarios. The solution uses standard base conversion algorithms and properly validates all inputs according to the requirements."
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"exerciseName": "allergies",
|
|
911
|
+
"status": "success",
|
|
912
|
+
"turns": 16,
|
|
913
|
+
"testResult": {
|
|
914
|
+
"passed": 0,
|
|
915
|
+
"failed": 0,
|
|
916
|
+
"total": 0,
|
|
917
|
+
"skipped": 0,
|
|
918
|
+
"success": false,
|
|
919
|
+
"output": "{\"numFailedTestSuites\":1,\"numFailedTests\":0,\"numPassedTestSuites\":0,\"numPassedTests\":0,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":1,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":0,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754330096738,\"success\":false,\"testResults\":[{\"assertionResults\":[],\"coverage\":{},\"endTime\":1754330097069,\"message\":\" ● Test suite failed to run\\n\\n Jest encountered an unexpected token\\n\\n Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.\\n\\n Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.\\n\\n By default \\\"node_modules\\\" folder is ignored by transformers.\\n\\n Here's what you can do:\\n • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.\\n • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript\\n • To have some of your \\\"node_modules\\\" files transformed, you can specify a custom \\\"transformIgnorePatterns\\\" in your config.\\n • If you need a custom transformation specify a \\\"transform\\\" option in your config.\\n • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the \\\"moduleNameMapper\\\" config option.\\n\\n You'll find more details and examples of these config options in the docs:\\n https://jestjs.io/docs/configuration\\n For information about custom transformations, see:\\n https://jestjs.io/docs/code-transformation\\n\\n Details:\\n\\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/allergies/allergies.js: Identifier 'Allergies' has already been declared. (40:13)\\n\\n 38 | //\\n 39 |\\n > 40 | export class Allergies {\\n | ^\\n 41 | constructor(score) {\\n 42 | this.score = score;\\n 43 | this.allergens = {\\n\\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\\n > 2 | import { Allergies } from './allergies';\\n | ^\\n 3 |\\n 4 | describe('Allergies', () => {\\n 5 | describe('testing for eggs allergy', () => {\\n\\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\\n at ScopeHandler.raise [as checkRedeclarationInScope] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:164:19)\\n at ScopeHandler.checkRedeclarationInScope [as declareName] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:118:12)\\n at Parser.declareName [as declareNameFromIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:818:16)\\n at Parser.declareNameFromIdentifier [as parseClassId] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2350:14)\\n at Parser.parseClassId [as parseClass] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1766:10)\\n at Parser.parseClass [as parseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2623:25)\\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\\n at parser.next (<anonymous>)\\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\\n at normalizeFile.next (<anonymous>)\\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\\n at run.next (<anonymous>)\\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\\n at transform.next (<anonymous>)\\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\\n at Object.require (allergies.spec.js:2:1)\\n\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/allergies/allergies.spec.js\",\"startTime\":1754330097069,\"status\":\"failed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
920
|
+
"details": {
|
|
921
|
+
"numFailedTestSuites": 1,
|
|
922
|
+
"numFailedTests": 0,
|
|
923
|
+
"numPassedTestSuites": 0,
|
|
924
|
+
"numPassedTests": 0,
|
|
925
|
+
"numPendingTestSuites": 0,
|
|
926
|
+
"numPendingTests": 0,
|
|
927
|
+
"numRuntimeErrorTestSuites": 1,
|
|
928
|
+
"numTodoTests": 0,
|
|
929
|
+
"numTotalTestSuites": 1,
|
|
930
|
+
"numTotalTests": 0,
|
|
931
|
+
"openHandles": [],
|
|
932
|
+
"snapshot": {
|
|
933
|
+
"added": 0,
|
|
934
|
+
"didUpdate": false,
|
|
935
|
+
"failure": false,
|
|
936
|
+
"filesAdded": 0,
|
|
937
|
+
"filesRemoved": 0,
|
|
938
|
+
"filesRemovedList": [],
|
|
939
|
+
"filesUnmatched": 0,
|
|
940
|
+
"filesUpdated": 0,
|
|
941
|
+
"matched": 0,
|
|
942
|
+
"total": 0,
|
|
943
|
+
"unchecked": 0,
|
|
944
|
+
"uncheckedKeysByFile": [],
|
|
945
|
+
"unmatched": 0,
|
|
946
|
+
"updated": 0
|
|
947
|
+
},
|
|
948
|
+
"startTime": 1754330096738,
|
|
949
|
+
"success": false,
|
|
950
|
+
"testResults": [
|
|
951
|
+
{
|
|
952
|
+
"assertionResults": [],
|
|
953
|
+
"coverage": {},
|
|
954
|
+
"endTime": 1754330097069,
|
|
955
|
+
"message": " ● Test suite failed to run\n\n Jest encountered an unexpected token\n\n Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.\n\n Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.\n\n By default \"node_modules\" folder is ignored by transformers.\n\n Here's what you can do:\n • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.\n • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript\n • To have some of your \"node_modules\" files transformed, you can specify a custom \"transformIgnorePatterns\" in your config.\n • If you need a custom transformation specify a \"transform\" option in your config.\n • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the \"moduleNameMapper\" config option.\n\n You'll find more details and examples of these config options in the docs:\n https://jestjs.io/docs/configuration\n For information about custom transformations, see:\n https://jestjs.io/docs/code-transformation\n\n Details:\n\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/allergies/allergies.js: Identifier 'Allergies' has already been declared. (40:13)\n\n 38 | //\n 39 |\n > 40 | export class Allergies {\n | ^\n 41 | constructor(score) {\n 42 | this.score = score;\n 43 | this.allergens = {\n\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\n > 2 | import { Allergies } from './allergies';\n | ^\n 3 |\n 4 | describe('Allergies', () => {\n 5 | describe('testing for eggs allergy', () => {\n\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\n at ScopeHandler.raise [as checkRedeclarationInScope] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:164:19)\n at ScopeHandler.checkRedeclarationInScope [as declareName] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:118:12)\n at Parser.declareName [as declareNameFromIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:818:16)\n at Parser.declareNameFromIdentifier [as parseClassId] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2350:14)\n at Parser.parseClassId [as parseClass] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1766:10)\n at Parser.parseClass [as parseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2623:25)\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\n at parser.next (<anonymous>)\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\n at normalizeFile.next (<anonymous>)\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\n at run.next (<anonymous>)\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\n at transform.next (<anonymous>)\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\n at Object.require (allergies.spec.js:2:1)\n",
|
|
956
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/allergies/allergies.spec.js",
|
|
957
|
+
"startTime": 1754330097069,
|
|
958
|
+
"status": "failed",
|
|
959
|
+
"summary": ""
|
|
960
|
+
}
|
|
961
|
+
],
|
|
962
|
+
"wasInterrupted": false
|
|
963
|
+
}
|
|
964
|
+
},
|
|
965
|
+
"timeElapsed": 442.776,
|
|
966
|
+
"cost": 0,
|
|
967
|
+
"startTime": "2025-08-04T17:47:34.303Z",
|
|
968
|
+
"endTime": "2025-08-04T17:54:57.079Z",
|
|
969
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 16/30, Cost: $0.0000/$1.0000, Runtime: 441943ms/300000ms"
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"exerciseName": "alphametics",
|
|
973
|
+
"status": "success",
|
|
974
|
+
"turns": 13,
|
|
975
|
+
"testResult": {
|
|
976
|
+
"passed": 0,
|
|
977
|
+
"failed": 0,
|
|
978
|
+
"total": 0,
|
|
979
|
+
"skipped": 0,
|
|
980
|
+
"success": false,
|
|
981
|
+
"output": "{\"numFailedTestSuites\":1,\"numFailedTests\":0,\"numPassedTestSuites\":0,\"numPassedTests\":0,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":1,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":0,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754330454339,\"success\":false,\"testResults\":[{\"assertionResults\":[],\"coverage\":{},\"endTime\":1754330454673,\"message\":\" ● Test suite failed to run\\n\\n Jest encountered an unexpected token\\n\\n Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.\\n\\n Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.\\n\\n By default \\\"node_modules\\\" folder is ignored by transformers.\\n\\n Here's what you can do:\\n • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.\\n • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript\\n • To have some of your \\\"node_modules\\\" files transformed, you can specify a custom \\\"transformIgnorePatterns\\\" in your config.\\n • If you need a custom transformation specify a \\\"transform\\\" option in your config.\\n • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the \\\"moduleNameMapper\\\" config option.\\n\\n You'll find more details and examples of these config options in the docs:\\n https://jestjs.io/docs/configuration\\n For information about custom transformations, see:\\n https://jestjs.io/docs/code-transformation\\n\\n Details:\\n\\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/alphametics/alphametics.js: Identifier 'solve' has already been declared. (197:13)\\n\\n 195 | //\\n 196 |\\n > 197 | export const solve = () => {\\n | ^\\n 198 | throw new Error('Remove this line and implement the function');\\n 199 | };\\n 200 |\\n\\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\\n > 2 | import { solve } from './alphametics';\\n | ^\\n 3 |\\n 4 | describe('Solve the alphametics puzzle', () => {\\n 5 | test('puzzle with three letters', () => {\\n\\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\\n at ScopeHandler.raise [as checkRedeclarationInScope] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:164:19)\\n at ScopeHandler.checkRedeclarationInScope [as declareName] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:118:12)\\n at Parser.declareName [as declareNameFromIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:818:16)\\n at Parser.declareNameFromIdentifier [as checkIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:813:12)\\n at Parser.checkIdentifier [as checkLVal] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:713:12)\\n at Parser.checkLVal [as parseVarId] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1628:10)\\n at Parser.parseVarId [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1577:12)\\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\\n at Parser.parseStatementListItem (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2630:17)\\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\\n at parser.next (<anonymous>)\\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\\n at normalizeFile.next (<anonymous>)\\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\\n at run.next (<anonymous>)\\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\\n at transform.next (<anonymous>)\\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\\n at Object.require (alphametics.spec.js:2:1)\\n\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/alphametics/alphametics.spec.js\",\"startTime\":1754330454673,\"status\":\"failed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
982
|
+
"details": {
|
|
983
|
+
"numFailedTestSuites": 1,
|
|
984
|
+
"numFailedTests": 0,
|
|
985
|
+
"numPassedTestSuites": 0,
|
|
986
|
+
"numPassedTests": 0,
|
|
987
|
+
"numPendingTestSuites": 0,
|
|
988
|
+
"numPendingTests": 0,
|
|
989
|
+
"numRuntimeErrorTestSuites": 1,
|
|
990
|
+
"numTodoTests": 0,
|
|
991
|
+
"numTotalTestSuites": 1,
|
|
992
|
+
"numTotalTests": 0,
|
|
993
|
+
"openHandles": [],
|
|
994
|
+
"snapshot": {
|
|
995
|
+
"added": 0,
|
|
996
|
+
"didUpdate": false,
|
|
997
|
+
"failure": false,
|
|
998
|
+
"filesAdded": 0,
|
|
999
|
+
"filesRemoved": 0,
|
|
1000
|
+
"filesRemovedList": [],
|
|
1001
|
+
"filesUnmatched": 0,
|
|
1002
|
+
"filesUpdated": 0,
|
|
1003
|
+
"matched": 0,
|
|
1004
|
+
"total": 0,
|
|
1005
|
+
"unchecked": 0,
|
|
1006
|
+
"uncheckedKeysByFile": [],
|
|
1007
|
+
"unmatched": 0,
|
|
1008
|
+
"updated": 0
|
|
1009
|
+
},
|
|
1010
|
+
"startTime": 1754330454339,
|
|
1011
|
+
"success": false,
|
|
1012
|
+
"testResults": [
|
|
1013
|
+
{
|
|
1014
|
+
"assertionResults": [],
|
|
1015
|
+
"coverage": {},
|
|
1016
|
+
"endTime": 1754330454673,
|
|
1017
|
+
"message": " ● Test suite failed to run\n\n Jest encountered an unexpected token\n\n Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.\n\n Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.\n\n By default \"node_modules\" folder is ignored by transformers.\n\n Here's what you can do:\n • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.\n • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript\n • To have some of your \"node_modules\" files transformed, you can specify a custom \"transformIgnorePatterns\" in your config.\n • If you need a custom transformation specify a \"transform\" option in your config.\n • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the \"moduleNameMapper\" config option.\n\n You'll find more details and examples of these config options in the docs:\n https://jestjs.io/docs/configuration\n For information about custom transformations, see:\n https://jestjs.io/docs/code-transformation\n\n Details:\n\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/alphametics/alphametics.js: Identifier 'solve' has already been declared. (197:13)\n\n 195 | //\n 196 |\n > 197 | export const solve = () => {\n | ^\n 198 | throw new Error('Remove this line and implement the function');\n 199 | };\n 200 |\n\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\n > 2 | import { solve } from './alphametics';\n | ^\n 3 |\n 4 | describe('Solve the alphametics puzzle', () => {\n 5 | test('puzzle with three letters', () => {\n\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\n at ScopeHandler.raise [as checkRedeclarationInScope] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:164:19)\n at ScopeHandler.checkRedeclarationInScope [as declareName] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:118:12)\n at Parser.declareName [as declareNameFromIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:818:16)\n at Parser.declareNameFromIdentifier [as checkIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:813:12)\n at Parser.checkIdentifier [as checkLVal] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:713:12)\n at Parser.checkLVal [as parseVarId] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1628:10)\n at Parser.parseVarId [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1577:12)\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\n at Parser.parseStatementListItem (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2630:17)\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\n at parser.next (<anonymous>)\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\n at normalizeFile.next (<anonymous>)\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\n at run.next (<anonymous>)\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\n at transform.next (<anonymous>)\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\n at Object.require (alphametics.spec.js:2:1)\n",
|
|
1018
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/alphametics/alphametics.spec.js",
|
|
1019
|
+
"startTime": 1754330454673,
|
|
1020
|
+
"status": "failed",
|
|
1021
|
+
"summary": ""
|
|
1022
|
+
}
|
|
1023
|
+
],
|
|
1024
|
+
"wasInterrupted": false
|
|
1025
|
+
}
|
|
1026
|
+
},
|
|
1027
|
+
"timeElapsed": 357.593,
|
|
1028
|
+
"cost": 0,
|
|
1029
|
+
"startTime": "2025-08-04T17:54:57.095Z",
|
|
1030
|
+
"endTime": "2025-08-04T18:00:54.688Z",
|
|
1031
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 13/30, Cost: $0.0000/$1.0000, Runtime: 356715ms/300000ms"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
"exerciseName": "anagram",
|
|
1035
|
+
"status": "success",
|
|
1036
|
+
"turns": 13,
|
|
1037
|
+
"testResult": {
|
|
1038
|
+
"passed": 0,
|
|
1039
|
+
"failed": 0,
|
|
1040
|
+
"total": 0,
|
|
1041
|
+
"skipped": 0,
|
|
1042
|
+
"success": false,
|
|
1043
|
+
"output": "{\"numFailedTestSuites\":1,\"numFailedTests\":0,\"numPassedTestSuites\":0,\"numPassedTests\":0,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":1,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":0,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754330870002,\"success\":false,\"testResults\":[{\"assertionResults\":[],\"coverage\":{},\"endTime\":1754330870348,\"message\":\" ● Test suite failed to run\\n\\n Jest encountered an unexpected token\\n\\n Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.\\n\\n Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.\\n\\n By default \\\"node_modules\\\" folder is ignored by transformers.\\n\\n Here's what you can do:\\n • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.\\n • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript\\n • To have some of your \\\"node_modules\\\" files transformed, you can specify a custom \\\"transformIgnorePatterns\\\" in your config.\\n • If you need a custom transformation specify a \\\"transform\\\" option in your config.\\n • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the \\\"moduleNameMapper\\\" config option.\\n\\n You'll find more details and examples of these config options in the docs:\\n https://jestjs.io/docs/configuration\\n For information about custom transformations, see:\\n https://jestjs.io/docs/code-transformation\\n\\n Details:\\n\\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/anagram/anagram.js: Identifier 'findAnagrams' has already been declared. (33:13)\\n\\n 31 | //\\n 32 |\\n > 33 | export const findAnagrams = (subject, candidates) => {\\n | ^\\n 34 | // Convert subject to lowercase for case-insensitive comparison\\n 35 | const subjectLower = subject.toLowerCase();\\n 36 |\\n\\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\\n > 2 | import { findAnagrams } from './anagram';\\n | ^\\n 3 |\\n 4 | const areSetsEqual = (setA, setB) =>\\n 5 | setA.size === setB.size && [...setA].every((val) => setB.has(val));\\n\\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\\n at ScopeHandler.raise [as checkRedeclarationInScope] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:164:19)\\n at ScopeHandler.checkRedeclarationInScope [as declareName] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:118:12)\\n at Parser.declareName [as declareNameFromIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:818:16)\\n at Parser.declareNameFromIdentifier [as checkIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:813:12)\\n at Parser.checkIdentifier [as checkLVal] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:713:12)\\n at Parser.checkLVal [as parseVarId] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1628:10)\\n at Parser.parseVarId [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1577:12)\\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\\n at Parser.parseStatementListItem (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2630:17)\\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\\n at parser.next (<anonymous>)\\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\\n at normalizeFile.next (<anonymous>)\\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\\n at run.next (<anonymous>)\\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\\n at transform.next (<anonymous>)\\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\\n at Object.require (anagram.spec.js:2:1)\\n\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/anagram/anagram.spec.js\",\"startTime\":1754330870348,\"status\":\"failed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
1044
|
+
"details": {
|
|
1045
|
+
"numFailedTestSuites": 1,
|
|
1046
|
+
"numFailedTests": 0,
|
|
1047
|
+
"numPassedTestSuites": 0,
|
|
1048
|
+
"numPassedTests": 0,
|
|
1049
|
+
"numPendingTestSuites": 0,
|
|
1050
|
+
"numPendingTests": 0,
|
|
1051
|
+
"numRuntimeErrorTestSuites": 1,
|
|
1052
|
+
"numTodoTests": 0,
|
|
1053
|
+
"numTotalTestSuites": 1,
|
|
1054
|
+
"numTotalTests": 0,
|
|
1055
|
+
"openHandles": [],
|
|
1056
|
+
"snapshot": {
|
|
1057
|
+
"added": 0,
|
|
1058
|
+
"didUpdate": false,
|
|
1059
|
+
"failure": false,
|
|
1060
|
+
"filesAdded": 0,
|
|
1061
|
+
"filesRemoved": 0,
|
|
1062
|
+
"filesRemovedList": [],
|
|
1063
|
+
"filesUnmatched": 0,
|
|
1064
|
+
"filesUpdated": 0,
|
|
1065
|
+
"matched": 0,
|
|
1066
|
+
"total": 0,
|
|
1067
|
+
"unchecked": 0,
|
|
1068
|
+
"uncheckedKeysByFile": [],
|
|
1069
|
+
"unmatched": 0,
|
|
1070
|
+
"updated": 0
|
|
1071
|
+
},
|
|
1072
|
+
"startTime": 1754330870002,
|
|
1073
|
+
"success": false,
|
|
1074
|
+
"testResults": [
|
|
1075
|
+
{
|
|
1076
|
+
"assertionResults": [],
|
|
1077
|
+
"coverage": {},
|
|
1078
|
+
"endTime": 1754330870348,
|
|
1079
|
+
"message": " ● Test suite failed to run\n\n Jest encountered an unexpected token\n\n Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.\n\n Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.\n\n By default \"node_modules\" folder is ignored by transformers.\n\n Here's what you can do:\n • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.\n • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript\n • To have some of your \"node_modules\" files transformed, you can specify a custom \"transformIgnorePatterns\" in your config.\n • If you need a custom transformation specify a \"transform\" option in your config.\n • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the \"moduleNameMapper\" config option.\n\n You'll find more details and examples of these config options in the docs:\n https://jestjs.io/docs/configuration\n For information about custom transformations, see:\n https://jestjs.io/docs/code-transformation\n\n Details:\n\n SyntaxError: /Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/anagram/anagram.js: Identifier 'findAnagrams' has already been declared. (33:13)\n\n 31 | //\n 32 |\n > 33 | export const findAnagrams = (subject, candidates) => {\n | ^\n 34 | // Convert subject to lowercase for case-insensitive comparison\n 35 | const subjectLower = subject.toLowerCase();\n 36 |\n\n 1 | import { describe, expect, test, xtest } from '@jest/globals';\n > 2 | import { findAnagrams } from './anagram';\n | ^\n 3 |\n 4 | const areSetsEqual = (setA, setB) =>\n 5 | setA.size === setB.size && [...setA].every((val) => setB.has(val));\n\n at constructor (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parse-error.ts:95:45)\n at Parser.toParseError [as raise] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/tokenizer/index.ts:1503:19)\n at ScopeHandler.raise [as checkRedeclarationInScope] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:164:19)\n at ScopeHandler.checkRedeclarationInScope [as declareName] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/util/scope.ts:118:12)\n at Parser.declareName [as declareNameFromIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:818:16)\n at Parser.declareNameFromIdentifier [as checkIdentifier] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:813:12)\n at Parser.checkIdentifier [as checkLVal] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/lval.ts:713:12)\n at Parser.checkLVal [as parseVarId] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1628:10)\n at Parser.parseVarId [as parseVar] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1577:12)\n at Parser.parseVar [as parseVarStatement] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1246:10)\n at Parser.parseVarStatement [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:607:21)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseStatementListItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:426:17)\n at Parser.parseStatementListItem (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2630:17)\n at Parser.parseExportDeclaration [as maybeParseExportDeclaration] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2546:31)\n at Parser.maybeParseExportDeclaration [as parseExport] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:2427:29)\n at Parser.parseExport [as parseStatementContent] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:644:25)\n at Parser.parseStatementContent [as parseStatementLike] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:477:17)\n at Parser.parseStatementLike [as parseModuleItem] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:414:17)\n at Parser.parseModuleItem [as parseBlockOrModuleBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1438:16)\n at Parser.parseBlockOrModuleBlockBody [as parseBlockBody] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:1412:10)\n at Parser.parseBlockBody [as parseProgram] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:229:10)\n at Parser.parseProgram [as parseTopLevel] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/statement.ts:203:25)\n at Parser.parseTopLevel [as parse] (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/parser/index.ts:93:10)\n at parse (node_modules/.pnpm/@babel+parser@7.28.0/node_modules/@babel/parser/src/index.ts:92:38)\n at parser (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/parser/index.ts:28:19)\n at parser.next (<anonymous>)\n at normalizeFile (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/normalize-file.ts:49:24)\n at normalizeFile.next (<anonymous>)\n at run (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transformation/index.ts:40:36)\n at run.next (<anonymous>)\n at transform (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:29:20)\n at transform.next (<anonymous>)\n at evaluateSync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:251:28)\n at sync (node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js:89:14)\n at fn (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:99:14)\n at transformSync (node_modules/.pnpm/@babel+core@7.28.0/node_modules/@babel/core/src/transform.ts:66:52)\n at ScriptTransformer.transformSource (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:545:31)\n at ScriptTransformer._transformAndBuildScript (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:674:40)\n at ScriptTransformer.transform (node_modules/.pnpm/@jest+transform@29.7.0/node_modules/@jest/transform/build/ScriptTransformer.js:726:19)\n at Object.require (anagram.spec.js:2:1)\n",
|
|
1080
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/anagram/anagram.spec.js",
|
|
1081
|
+
"startTime": 1754330870348,
|
|
1082
|
+
"status": "failed",
|
|
1083
|
+
"summary": ""
|
|
1084
|
+
}
|
|
1085
|
+
],
|
|
1086
|
+
"wasInterrupted": false
|
|
1087
|
+
}
|
|
1088
|
+
},
|
|
1089
|
+
"timeElapsed": 415.655,
|
|
1090
|
+
"cost": 0,
|
|
1091
|
+
"startTime": "2025-08-04T18:00:54.702Z",
|
|
1092
|
+
"endTime": "2025-08-04T18:07:50.357Z",
|
|
1093
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 13/30, Cost: $0.0000/$1.0000, Runtime: 414826ms/300000ms"
|
|
1094
|
+
},
|
|
1095
|
+
{
|
|
1096
|
+
"exerciseName": "armstrong-numbers",
|
|
1097
|
+
"status": "success",
|
|
1098
|
+
"turns": 17,
|
|
1099
|
+
"testResult": {
|
|
1100
|
+
"passed": 11,
|
|
1101
|
+
"failed": 0,
|
|
1102
|
+
"total": 11,
|
|
1103
|
+
"skipped": 0,
|
|
1104
|
+
"success": true,
|
|
1105
|
+
"output": "{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":1,\"numPassedTests\":11,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":11,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754331199321,\"success\":true,\"testResults\":[{\"assertionResults\":[{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Zero is an Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Zero is an Armstrong number\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Single-digit numbers are Armstrong numbers\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Single-digit numbers are Armstrong numbers\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers There are no two-digit Armstrong numbers\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"There are no two-digit Armstrong numbers\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Three-digit number that is an Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Three-digit number that is an Armstrong number\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Three-digit number that is not an Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Three-digit number that is not an Armstrong number\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Four-digit number that is an Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Four-digit number that is an Armstrong number\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Four-digit number that is not an Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Four-digit number that is not an Armstrong number\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Seven-digit number that is an Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Seven-digit number that is an Armstrong number\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Seven-digit number that is not an Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Seven-digit number that is not an Armstrong number\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers Armstrong number containing seven zeroes\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Armstrong number containing seven zeroes\"},{\"ancestorTitles\":[\"Armstrong Numbers\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Armstrong Numbers The largest and last Armstrong number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"The largest and last Armstrong number\"}],\"endTime\":1754331199641,\"message\":\"\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/armstrong-numbers/armstrong-numbers.spec.js\",\"startTime\":1754331199340,\"status\":\"passed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
1106
|
+
"details": {
|
|
1107
|
+
"numFailedTestSuites": 0,
|
|
1108
|
+
"numFailedTests": 0,
|
|
1109
|
+
"numPassedTestSuites": 1,
|
|
1110
|
+
"numPassedTests": 11,
|
|
1111
|
+
"numPendingTestSuites": 0,
|
|
1112
|
+
"numPendingTests": 0,
|
|
1113
|
+
"numRuntimeErrorTestSuites": 0,
|
|
1114
|
+
"numTodoTests": 0,
|
|
1115
|
+
"numTotalTestSuites": 1,
|
|
1116
|
+
"numTotalTests": 11,
|
|
1117
|
+
"openHandles": [],
|
|
1118
|
+
"snapshot": {
|
|
1119
|
+
"added": 0,
|
|
1120
|
+
"didUpdate": false,
|
|
1121
|
+
"failure": false,
|
|
1122
|
+
"filesAdded": 0,
|
|
1123
|
+
"filesRemoved": 0,
|
|
1124
|
+
"filesRemovedList": [],
|
|
1125
|
+
"filesUnmatched": 0,
|
|
1126
|
+
"filesUpdated": 0,
|
|
1127
|
+
"matched": 0,
|
|
1128
|
+
"total": 0,
|
|
1129
|
+
"unchecked": 0,
|
|
1130
|
+
"uncheckedKeysByFile": [],
|
|
1131
|
+
"unmatched": 0,
|
|
1132
|
+
"updated": 0
|
|
1133
|
+
},
|
|
1134
|
+
"startTime": 1754331199321,
|
|
1135
|
+
"success": true,
|
|
1136
|
+
"testResults": [
|
|
1137
|
+
{
|
|
1138
|
+
"assertionResults": [
|
|
1139
|
+
{
|
|
1140
|
+
"ancestorTitles": [
|
|
1141
|
+
"Armstrong Numbers"
|
|
1142
|
+
],
|
|
1143
|
+
"duration": 1,
|
|
1144
|
+
"failureDetails": [],
|
|
1145
|
+
"failureMessages": [],
|
|
1146
|
+
"fullName": "Armstrong Numbers Zero is an Armstrong number",
|
|
1147
|
+
"invocations": 1,
|
|
1148
|
+
"location": null,
|
|
1149
|
+
"numPassingAsserts": 1,
|
|
1150
|
+
"retryReasons": [],
|
|
1151
|
+
"status": "passed",
|
|
1152
|
+
"title": "Zero is an Armstrong number"
|
|
1153
|
+
},
|
|
1154
|
+
{
|
|
1155
|
+
"ancestorTitles": [
|
|
1156
|
+
"Armstrong Numbers"
|
|
1157
|
+
],
|
|
1158
|
+
"duration": 0,
|
|
1159
|
+
"failureDetails": [],
|
|
1160
|
+
"failureMessages": [],
|
|
1161
|
+
"fullName": "Armstrong Numbers Single-digit numbers are Armstrong numbers",
|
|
1162
|
+
"invocations": 1,
|
|
1163
|
+
"location": null,
|
|
1164
|
+
"numPassingAsserts": 1,
|
|
1165
|
+
"retryReasons": [],
|
|
1166
|
+
"status": "passed",
|
|
1167
|
+
"title": "Single-digit numbers are Armstrong numbers"
|
|
1168
|
+
},
|
|
1169
|
+
{
|
|
1170
|
+
"ancestorTitles": [
|
|
1171
|
+
"Armstrong Numbers"
|
|
1172
|
+
],
|
|
1173
|
+
"duration": 0,
|
|
1174
|
+
"failureDetails": [],
|
|
1175
|
+
"failureMessages": [],
|
|
1176
|
+
"fullName": "Armstrong Numbers There are no two-digit Armstrong numbers",
|
|
1177
|
+
"invocations": 1,
|
|
1178
|
+
"location": null,
|
|
1179
|
+
"numPassingAsserts": 1,
|
|
1180
|
+
"retryReasons": [],
|
|
1181
|
+
"status": "passed",
|
|
1182
|
+
"title": "There are no two-digit Armstrong numbers"
|
|
1183
|
+
},
|
|
1184
|
+
{
|
|
1185
|
+
"ancestorTitles": [
|
|
1186
|
+
"Armstrong Numbers"
|
|
1187
|
+
],
|
|
1188
|
+
"duration": 0,
|
|
1189
|
+
"failureDetails": [],
|
|
1190
|
+
"failureMessages": [],
|
|
1191
|
+
"fullName": "Armstrong Numbers Three-digit number that is an Armstrong number",
|
|
1192
|
+
"invocations": 1,
|
|
1193
|
+
"location": null,
|
|
1194
|
+
"numPassingAsserts": 1,
|
|
1195
|
+
"retryReasons": [],
|
|
1196
|
+
"status": "passed",
|
|
1197
|
+
"title": "Three-digit number that is an Armstrong number"
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
"ancestorTitles": [
|
|
1201
|
+
"Armstrong Numbers"
|
|
1202
|
+
],
|
|
1203
|
+
"duration": 0,
|
|
1204
|
+
"failureDetails": [],
|
|
1205
|
+
"failureMessages": [],
|
|
1206
|
+
"fullName": "Armstrong Numbers Three-digit number that is not an Armstrong number",
|
|
1207
|
+
"invocations": 1,
|
|
1208
|
+
"location": null,
|
|
1209
|
+
"numPassingAsserts": 1,
|
|
1210
|
+
"retryReasons": [],
|
|
1211
|
+
"status": "passed",
|
|
1212
|
+
"title": "Three-digit number that is not an Armstrong number"
|
|
1213
|
+
},
|
|
1214
|
+
{
|
|
1215
|
+
"ancestorTitles": [
|
|
1216
|
+
"Armstrong Numbers"
|
|
1217
|
+
],
|
|
1218
|
+
"duration": 0,
|
|
1219
|
+
"failureDetails": [],
|
|
1220
|
+
"failureMessages": [],
|
|
1221
|
+
"fullName": "Armstrong Numbers Four-digit number that is an Armstrong number",
|
|
1222
|
+
"invocations": 1,
|
|
1223
|
+
"location": null,
|
|
1224
|
+
"numPassingAsserts": 1,
|
|
1225
|
+
"retryReasons": [],
|
|
1226
|
+
"status": "passed",
|
|
1227
|
+
"title": "Four-digit number that is an Armstrong number"
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
"ancestorTitles": [
|
|
1231
|
+
"Armstrong Numbers"
|
|
1232
|
+
],
|
|
1233
|
+
"duration": 1,
|
|
1234
|
+
"failureDetails": [],
|
|
1235
|
+
"failureMessages": [],
|
|
1236
|
+
"fullName": "Armstrong Numbers Four-digit number that is not an Armstrong number",
|
|
1237
|
+
"invocations": 1,
|
|
1238
|
+
"location": null,
|
|
1239
|
+
"numPassingAsserts": 1,
|
|
1240
|
+
"retryReasons": [],
|
|
1241
|
+
"status": "passed",
|
|
1242
|
+
"title": "Four-digit number that is not an Armstrong number"
|
|
1243
|
+
},
|
|
1244
|
+
{
|
|
1245
|
+
"ancestorTitles": [
|
|
1246
|
+
"Armstrong Numbers"
|
|
1247
|
+
],
|
|
1248
|
+
"duration": 0,
|
|
1249
|
+
"failureDetails": [],
|
|
1250
|
+
"failureMessages": [],
|
|
1251
|
+
"fullName": "Armstrong Numbers Seven-digit number that is an Armstrong number",
|
|
1252
|
+
"invocations": 1,
|
|
1253
|
+
"location": null,
|
|
1254
|
+
"numPassingAsserts": 1,
|
|
1255
|
+
"retryReasons": [],
|
|
1256
|
+
"status": "passed",
|
|
1257
|
+
"title": "Seven-digit number that is an Armstrong number"
|
|
1258
|
+
},
|
|
1259
|
+
{
|
|
1260
|
+
"ancestorTitles": [
|
|
1261
|
+
"Armstrong Numbers"
|
|
1262
|
+
],
|
|
1263
|
+
"duration": 0,
|
|
1264
|
+
"failureDetails": [],
|
|
1265
|
+
"failureMessages": [],
|
|
1266
|
+
"fullName": "Armstrong Numbers Seven-digit number that is not an Armstrong number",
|
|
1267
|
+
"invocations": 1,
|
|
1268
|
+
"location": null,
|
|
1269
|
+
"numPassingAsserts": 1,
|
|
1270
|
+
"retryReasons": [],
|
|
1271
|
+
"status": "passed",
|
|
1272
|
+
"title": "Seven-digit number that is not an Armstrong number"
|
|
1273
|
+
},
|
|
1274
|
+
{
|
|
1275
|
+
"ancestorTitles": [
|
|
1276
|
+
"Armstrong Numbers"
|
|
1277
|
+
],
|
|
1278
|
+
"duration": 0,
|
|
1279
|
+
"failureDetails": [],
|
|
1280
|
+
"failureMessages": [],
|
|
1281
|
+
"fullName": "Armstrong Numbers Armstrong number containing seven zeroes",
|
|
1282
|
+
"invocations": 1,
|
|
1283
|
+
"location": null,
|
|
1284
|
+
"numPassingAsserts": 1,
|
|
1285
|
+
"retryReasons": [],
|
|
1286
|
+
"status": "passed",
|
|
1287
|
+
"title": "Armstrong number containing seven zeroes"
|
|
1288
|
+
},
|
|
1289
|
+
{
|
|
1290
|
+
"ancestorTitles": [
|
|
1291
|
+
"Armstrong Numbers"
|
|
1292
|
+
],
|
|
1293
|
+
"duration": 0,
|
|
1294
|
+
"failureDetails": [],
|
|
1295
|
+
"failureMessages": [],
|
|
1296
|
+
"fullName": "Armstrong Numbers The largest and last Armstrong number",
|
|
1297
|
+
"invocations": 1,
|
|
1298
|
+
"location": null,
|
|
1299
|
+
"numPassingAsserts": 1,
|
|
1300
|
+
"retryReasons": [],
|
|
1301
|
+
"status": "passed",
|
|
1302
|
+
"title": "The largest and last Armstrong number"
|
|
1303
|
+
}
|
|
1304
|
+
],
|
|
1305
|
+
"endTime": 1754331199641,
|
|
1306
|
+
"message": "",
|
|
1307
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/armstrong-numbers/armstrong-numbers.spec.js",
|
|
1308
|
+
"startTime": 1754331199340,
|
|
1309
|
+
"status": "passed",
|
|
1310
|
+
"summary": ""
|
|
1311
|
+
}
|
|
1312
|
+
],
|
|
1313
|
+
"wasInterrupted": false
|
|
1314
|
+
}
|
|
1315
|
+
},
|
|
1316
|
+
"timeElapsed": 329.277,
|
|
1317
|
+
"cost": 0,
|
|
1318
|
+
"startTime": "2025-08-04T18:07:50.377Z",
|
|
1319
|
+
"endTime": "2025-08-04T18:13:19.654Z",
|
|
1320
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 17/30, Cost: $0.0000/$1.0000, Runtime: 328328ms/300000ms"
|
|
1321
|
+
},
|
|
1322
|
+
{
|
|
1323
|
+
"exerciseName": "atbash-cipher",
|
|
1324
|
+
"status": "success",
|
|
1325
|
+
"turns": 23,
|
|
1326
|
+
"testResult": {
|
|
1327
|
+
"passed": 14,
|
|
1328
|
+
"failed": 0,
|
|
1329
|
+
"total": 14,
|
|
1330
|
+
"skipped": 0,
|
|
1331
|
+
"success": true,
|
|
1332
|
+
"output": "{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":1,\"numPassedTests\":14,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":14,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754331690419,\"success\":true,\"testResults\":[{\"assertionResults\":[{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode yes\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode yes\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode no\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode no\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode OMG\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode OMG\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode spaces\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode spaces\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode mindblowingly\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode mindblowingly\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode numbers\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode numbers\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode deep thought\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode deep thought\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"encode\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher encode encode all the letters\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"encode all the letters\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"decode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher decode decode exercism\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decode exercism\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"decode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher decode decode a sentence\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decode a sentence\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"decode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher decode decode numbers\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decode numbers\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"decode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher decode decode all the letters\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decode all the letters\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"decode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher decode decode with too many spaces\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decode with too many spaces\"},{\"ancestorTitles\":[\"Atbash Cipher\",\"decode\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Atbash Cipher decode decode with no spaces\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"decode with no spaces\"}],\"endTime\":1754331690547,\"message\":\"\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/atbash-cipher/atbash-cipher.spec.js\",\"startTime\":1754331690436,\"status\":\"passed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
1333
|
+
"details": {
|
|
1334
|
+
"numFailedTestSuites": 0,
|
|
1335
|
+
"numFailedTests": 0,
|
|
1336
|
+
"numPassedTestSuites": 1,
|
|
1337
|
+
"numPassedTests": 14,
|
|
1338
|
+
"numPendingTestSuites": 0,
|
|
1339
|
+
"numPendingTests": 0,
|
|
1340
|
+
"numRuntimeErrorTestSuites": 0,
|
|
1341
|
+
"numTodoTests": 0,
|
|
1342
|
+
"numTotalTestSuites": 1,
|
|
1343
|
+
"numTotalTests": 14,
|
|
1344
|
+
"openHandles": [],
|
|
1345
|
+
"snapshot": {
|
|
1346
|
+
"added": 0,
|
|
1347
|
+
"didUpdate": false,
|
|
1348
|
+
"failure": false,
|
|
1349
|
+
"filesAdded": 0,
|
|
1350
|
+
"filesRemoved": 0,
|
|
1351
|
+
"filesRemovedList": [],
|
|
1352
|
+
"filesUnmatched": 0,
|
|
1353
|
+
"filesUpdated": 0,
|
|
1354
|
+
"matched": 0,
|
|
1355
|
+
"total": 0,
|
|
1356
|
+
"unchecked": 0,
|
|
1357
|
+
"uncheckedKeysByFile": [],
|
|
1358
|
+
"unmatched": 0,
|
|
1359
|
+
"updated": 0
|
|
1360
|
+
},
|
|
1361
|
+
"startTime": 1754331690419,
|
|
1362
|
+
"success": true,
|
|
1363
|
+
"testResults": [
|
|
1364
|
+
{
|
|
1365
|
+
"assertionResults": [
|
|
1366
|
+
{
|
|
1367
|
+
"ancestorTitles": [
|
|
1368
|
+
"Atbash Cipher",
|
|
1369
|
+
"encode"
|
|
1370
|
+
],
|
|
1371
|
+
"duration": 1,
|
|
1372
|
+
"failureDetails": [],
|
|
1373
|
+
"failureMessages": [],
|
|
1374
|
+
"fullName": "Atbash Cipher encode encode yes",
|
|
1375
|
+
"invocations": 1,
|
|
1376
|
+
"location": null,
|
|
1377
|
+
"numPassingAsserts": 1,
|
|
1378
|
+
"retryReasons": [],
|
|
1379
|
+
"status": "passed",
|
|
1380
|
+
"title": "encode yes"
|
|
1381
|
+
},
|
|
1382
|
+
{
|
|
1383
|
+
"ancestorTitles": [
|
|
1384
|
+
"Atbash Cipher",
|
|
1385
|
+
"encode"
|
|
1386
|
+
],
|
|
1387
|
+
"duration": 0,
|
|
1388
|
+
"failureDetails": [],
|
|
1389
|
+
"failureMessages": [],
|
|
1390
|
+
"fullName": "Atbash Cipher encode encode no",
|
|
1391
|
+
"invocations": 1,
|
|
1392
|
+
"location": null,
|
|
1393
|
+
"numPassingAsserts": 1,
|
|
1394
|
+
"retryReasons": [],
|
|
1395
|
+
"status": "passed",
|
|
1396
|
+
"title": "encode no"
|
|
1397
|
+
},
|
|
1398
|
+
{
|
|
1399
|
+
"ancestorTitles": [
|
|
1400
|
+
"Atbash Cipher",
|
|
1401
|
+
"encode"
|
|
1402
|
+
],
|
|
1403
|
+
"duration": 0,
|
|
1404
|
+
"failureDetails": [],
|
|
1405
|
+
"failureMessages": [],
|
|
1406
|
+
"fullName": "Atbash Cipher encode encode OMG",
|
|
1407
|
+
"invocations": 1,
|
|
1408
|
+
"location": null,
|
|
1409
|
+
"numPassingAsserts": 1,
|
|
1410
|
+
"retryReasons": [],
|
|
1411
|
+
"status": "passed",
|
|
1412
|
+
"title": "encode OMG"
|
|
1413
|
+
},
|
|
1414
|
+
{
|
|
1415
|
+
"ancestorTitles": [
|
|
1416
|
+
"Atbash Cipher",
|
|
1417
|
+
"encode"
|
|
1418
|
+
],
|
|
1419
|
+
"duration": 0,
|
|
1420
|
+
"failureDetails": [],
|
|
1421
|
+
"failureMessages": [],
|
|
1422
|
+
"fullName": "Atbash Cipher encode encode spaces",
|
|
1423
|
+
"invocations": 1,
|
|
1424
|
+
"location": null,
|
|
1425
|
+
"numPassingAsserts": 1,
|
|
1426
|
+
"retryReasons": [],
|
|
1427
|
+
"status": "passed",
|
|
1428
|
+
"title": "encode spaces"
|
|
1429
|
+
},
|
|
1430
|
+
{
|
|
1431
|
+
"ancestorTitles": [
|
|
1432
|
+
"Atbash Cipher",
|
|
1433
|
+
"encode"
|
|
1434
|
+
],
|
|
1435
|
+
"duration": 0,
|
|
1436
|
+
"failureDetails": [],
|
|
1437
|
+
"failureMessages": [],
|
|
1438
|
+
"fullName": "Atbash Cipher encode encode mindblowingly",
|
|
1439
|
+
"invocations": 1,
|
|
1440
|
+
"location": null,
|
|
1441
|
+
"numPassingAsserts": 1,
|
|
1442
|
+
"retryReasons": [],
|
|
1443
|
+
"status": "passed",
|
|
1444
|
+
"title": "encode mindblowingly"
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"ancestorTitles": [
|
|
1448
|
+
"Atbash Cipher",
|
|
1449
|
+
"encode"
|
|
1450
|
+
],
|
|
1451
|
+
"duration": 0,
|
|
1452
|
+
"failureDetails": [],
|
|
1453
|
+
"failureMessages": [],
|
|
1454
|
+
"fullName": "Atbash Cipher encode encode numbers",
|
|
1455
|
+
"invocations": 1,
|
|
1456
|
+
"location": null,
|
|
1457
|
+
"numPassingAsserts": 1,
|
|
1458
|
+
"retryReasons": [],
|
|
1459
|
+
"status": "passed",
|
|
1460
|
+
"title": "encode numbers"
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"ancestorTitles": [
|
|
1464
|
+
"Atbash Cipher",
|
|
1465
|
+
"encode"
|
|
1466
|
+
],
|
|
1467
|
+
"duration": 0,
|
|
1468
|
+
"failureDetails": [],
|
|
1469
|
+
"failureMessages": [],
|
|
1470
|
+
"fullName": "Atbash Cipher encode encode deep thought",
|
|
1471
|
+
"invocations": 1,
|
|
1472
|
+
"location": null,
|
|
1473
|
+
"numPassingAsserts": 1,
|
|
1474
|
+
"retryReasons": [],
|
|
1475
|
+
"status": "passed",
|
|
1476
|
+
"title": "encode deep thought"
|
|
1477
|
+
},
|
|
1478
|
+
{
|
|
1479
|
+
"ancestorTitles": [
|
|
1480
|
+
"Atbash Cipher",
|
|
1481
|
+
"encode"
|
|
1482
|
+
],
|
|
1483
|
+
"duration": 1,
|
|
1484
|
+
"failureDetails": [],
|
|
1485
|
+
"failureMessages": [],
|
|
1486
|
+
"fullName": "Atbash Cipher encode encode all the letters",
|
|
1487
|
+
"invocations": 1,
|
|
1488
|
+
"location": null,
|
|
1489
|
+
"numPassingAsserts": 1,
|
|
1490
|
+
"retryReasons": [],
|
|
1491
|
+
"status": "passed",
|
|
1492
|
+
"title": "encode all the letters"
|
|
1493
|
+
},
|
|
1494
|
+
{
|
|
1495
|
+
"ancestorTitles": [
|
|
1496
|
+
"Atbash Cipher",
|
|
1497
|
+
"decode"
|
|
1498
|
+
],
|
|
1499
|
+
"duration": 0,
|
|
1500
|
+
"failureDetails": [],
|
|
1501
|
+
"failureMessages": [],
|
|
1502
|
+
"fullName": "Atbash Cipher decode decode exercism",
|
|
1503
|
+
"invocations": 1,
|
|
1504
|
+
"location": null,
|
|
1505
|
+
"numPassingAsserts": 1,
|
|
1506
|
+
"retryReasons": [],
|
|
1507
|
+
"status": "passed",
|
|
1508
|
+
"title": "decode exercism"
|
|
1509
|
+
},
|
|
1510
|
+
{
|
|
1511
|
+
"ancestorTitles": [
|
|
1512
|
+
"Atbash Cipher",
|
|
1513
|
+
"decode"
|
|
1514
|
+
],
|
|
1515
|
+
"duration": 0,
|
|
1516
|
+
"failureDetails": [],
|
|
1517
|
+
"failureMessages": [],
|
|
1518
|
+
"fullName": "Atbash Cipher decode decode a sentence",
|
|
1519
|
+
"invocations": 1,
|
|
1520
|
+
"location": null,
|
|
1521
|
+
"numPassingAsserts": 1,
|
|
1522
|
+
"retryReasons": [],
|
|
1523
|
+
"status": "passed",
|
|
1524
|
+
"title": "decode a sentence"
|
|
1525
|
+
},
|
|
1526
|
+
{
|
|
1527
|
+
"ancestorTitles": [
|
|
1528
|
+
"Atbash Cipher",
|
|
1529
|
+
"decode"
|
|
1530
|
+
],
|
|
1531
|
+
"duration": 0,
|
|
1532
|
+
"failureDetails": [],
|
|
1533
|
+
"failureMessages": [],
|
|
1534
|
+
"fullName": "Atbash Cipher decode decode numbers",
|
|
1535
|
+
"invocations": 1,
|
|
1536
|
+
"location": null,
|
|
1537
|
+
"numPassingAsserts": 1,
|
|
1538
|
+
"retryReasons": [],
|
|
1539
|
+
"status": "passed",
|
|
1540
|
+
"title": "decode numbers"
|
|
1541
|
+
},
|
|
1542
|
+
{
|
|
1543
|
+
"ancestorTitles": [
|
|
1544
|
+
"Atbash Cipher",
|
|
1545
|
+
"decode"
|
|
1546
|
+
],
|
|
1547
|
+
"duration": 0,
|
|
1548
|
+
"failureDetails": [],
|
|
1549
|
+
"failureMessages": [],
|
|
1550
|
+
"fullName": "Atbash Cipher decode decode all the letters",
|
|
1551
|
+
"invocations": 1,
|
|
1552
|
+
"location": null,
|
|
1553
|
+
"numPassingAsserts": 1,
|
|
1554
|
+
"retryReasons": [],
|
|
1555
|
+
"status": "passed",
|
|
1556
|
+
"title": "decode all the letters"
|
|
1557
|
+
},
|
|
1558
|
+
{
|
|
1559
|
+
"ancestorTitles": [
|
|
1560
|
+
"Atbash Cipher",
|
|
1561
|
+
"decode"
|
|
1562
|
+
],
|
|
1563
|
+
"duration": 0,
|
|
1564
|
+
"failureDetails": [],
|
|
1565
|
+
"failureMessages": [],
|
|
1566
|
+
"fullName": "Atbash Cipher decode decode with too many spaces",
|
|
1567
|
+
"invocations": 1,
|
|
1568
|
+
"location": null,
|
|
1569
|
+
"numPassingAsserts": 1,
|
|
1570
|
+
"retryReasons": [],
|
|
1571
|
+
"status": "passed",
|
|
1572
|
+
"title": "decode with too many spaces"
|
|
1573
|
+
},
|
|
1574
|
+
{
|
|
1575
|
+
"ancestorTitles": [
|
|
1576
|
+
"Atbash Cipher",
|
|
1577
|
+
"decode"
|
|
1578
|
+
],
|
|
1579
|
+
"duration": 0,
|
|
1580
|
+
"failureDetails": [],
|
|
1581
|
+
"failureMessages": [],
|
|
1582
|
+
"fullName": "Atbash Cipher decode decode with no spaces",
|
|
1583
|
+
"invocations": 1,
|
|
1584
|
+
"location": null,
|
|
1585
|
+
"numPassingAsserts": 1,
|
|
1586
|
+
"retryReasons": [],
|
|
1587
|
+
"status": "passed",
|
|
1588
|
+
"title": "decode with no spaces"
|
|
1589
|
+
}
|
|
1590
|
+
],
|
|
1591
|
+
"endTime": 1754331690547,
|
|
1592
|
+
"message": "",
|
|
1593
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/atbash-cipher/atbash-cipher.spec.js",
|
|
1594
|
+
"startTime": 1754331690436,
|
|
1595
|
+
"status": "passed",
|
|
1596
|
+
"summary": ""
|
|
1597
|
+
}
|
|
1598
|
+
],
|
|
1599
|
+
"wasInterrupted": false
|
|
1600
|
+
}
|
|
1601
|
+
},
|
|
1602
|
+
"timeElapsed": 490.88,
|
|
1603
|
+
"cost": 0,
|
|
1604
|
+
"startTime": "2025-08-04T18:13:19.676Z",
|
|
1605
|
+
"endTime": "2025-08-04T18:21:30.556Z",
|
|
1606
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 23/30, Cost: $0.0000/$1.0000, Runtime: 490259ms/300000ms"
|
|
1607
|
+
},
|
|
1608
|
+
{
|
|
1609
|
+
"exerciseName": "bank-account",
|
|
1610
|
+
"status": "success",
|
|
1611
|
+
"turns": 17,
|
|
1612
|
+
"testResult": {
|
|
1613
|
+
"passed": 0,
|
|
1614
|
+
"failed": 1,
|
|
1615
|
+
"total": 15,
|
|
1616
|
+
"skipped": 14,
|
|
1617
|
+
"success": false,
|
|
1618
|
+
"output": "{\"numFailedTestSuites\":1,\"numFailedTests\":1,\"numPassedTestSuites\":0,\"numPassedTests\":0,\"numPendingTestSuites\":0,\"numPendingTests\":14,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":1,\"numTotalTests\":15,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1754332021458,\"success\":false,\"testResults\":[{\"assertionResults\":[{\"ancestorTitles\":[\"Bank Account\"],\"duration\":0,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Remove this line and implement the function\\n at BankAccount.open (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/bank-account.js:77:11)\\n at Object.open (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/bank-account.spec.js:7:13)\\n at Promise.then.completed (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/utils.js:298:28)\\n at new Promise (<anonymous>)\\n at callAsyncCircusFn (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/utils.js:231:10)\\n at _callCircusTest (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:316:40)\\n at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n at _runTest (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:252:3)\\n at _runTestsForDescribeBlock (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:126:9)\\n at _runTestsForDescribeBlock (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:121:9)\\n at run (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:71:3)\\n at runAndTransformResultsToJestFormat (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\\n at jestAdapter (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\\n at runTestInternal (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-runner@29.7.0/node_modules/jest-runner/build/runTest.js:367:16)\\n at runTest (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-runner@29.7.0/node_modules/jest-runner/build/runTest.js:444:34)\"],\"fullName\":\"Bank Account newly opened account has zero balance\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"newly opened account has zero balance\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account can deposit money\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"can deposit money\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account can deposit money sequentially\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"can deposit money sequentially\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account can withdraw money\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"can withdraw money\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account can withdraw money sequentially\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"can withdraw money sequentially\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account checking balance of closed account throws error\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"checking balance of closed account throws error\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account deposit into closed account throws error\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"deposit into closed account throws error\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account withdraw from closed account throws error\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"withdraw from closed account throws error\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account close already closed account throws error\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"close already closed account throws error\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account open already opened account throws error\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"open already opened account throws error\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account reopened account does not retain balance\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"reopened account does not retain balance\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account cannot withdraw more than deposited\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"cannot withdraw more than deposited\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account cannot withdraw negative amount\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"cannot withdraw negative amount\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account cannot deposit negative amount\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"cannot deposit negative amount\"},{\"ancestorTitles\":[\"Bank Account\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Bank Account changing balance directly throws error\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"changing balance directly throws error\"}],\"endTime\":1754332021585,\"message\":\" ● Bank Account › newly opened account has zero balance\\n\\n Remove this line and implement the function\\n\\n 75 |\\n 76 | open() {\\n > 77 | throw new Error('Remove this line and implement the function');\\n | ^\\n 78 | }\\n 79 |\\n 80 | close() {\\n\\n at BankAccount.open (bank-account.js:77:11)\\n at Object.open (bank-account.spec.js:7:13)\\n\",\"name\":\"/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/bank-account.spec.js\",\"startTime\":1754332021476,\"status\":\"failed\",\"summary\":\"\"}],\"wasInterrupted\":false}\n",
|
|
1619
|
+
"details": {
|
|
1620
|
+
"numFailedTestSuites": 1,
|
|
1621
|
+
"numFailedTests": 1,
|
|
1622
|
+
"numPassedTestSuites": 0,
|
|
1623
|
+
"numPassedTests": 0,
|
|
1624
|
+
"numPendingTestSuites": 0,
|
|
1625
|
+
"numPendingTests": 14,
|
|
1626
|
+
"numRuntimeErrorTestSuites": 0,
|
|
1627
|
+
"numTodoTests": 0,
|
|
1628
|
+
"numTotalTestSuites": 1,
|
|
1629
|
+
"numTotalTests": 15,
|
|
1630
|
+
"openHandles": [],
|
|
1631
|
+
"snapshot": {
|
|
1632
|
+
"added": 0,
|
|
1633
|
+
"didUpdate": false,
|
|
1634
|
+
"failure": false,
|
|
1635
|
+
"filesAdded": 0,
|
|
1636
|
+
"filesRemoved": 0,
|
|
1637
|
+
"filesRemovedList": [],
|
|
1638
|
+
"filesUnmatched": 0,
|
|
1639
|
+
"filesUpdated": 0,
|
|
1640
|
+
"matched": 0,
|
|
1641
|
+
"total": 0,
|
|
1642
|
+
"unchecked": 0,
|
|
1643
|
+
"uncheckedKeysByFile": [],
|
|
1644
|
+
"unmatched": 0,
|
|
1645
|
+
"updated": 0
|
|
1646
|
+
},
|
|
1647
|
+
"startTime": 1754332021458,
|
|
1648
|
+
"success": false,
|
|
1649
|
+
"testResults": [
|
|
1650
|
+
{
|
|
1651
|
+
"assertionResults": [
|
|
1652
|
+
{
|
|
1653
|
+
"ancestorTitles": [
|
|
1654
|
+
"Bank Account"
|
|
1655
|
+
],
|
|
1656
|
+
"duration": 0,
|
|
1657
|
+
"failureDetails": [
|
|
1658
|
+
{}
|
|
1659
|
+
],
|
|
1660
|
+
"failureMessages": [
|
|
1661
|
+
"Error: Remove this line and implement the function\n at BankAccount.open (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/bank-account.js:77:11)\n at Object.open (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/bank-account.spec.js:7:13)\n at Promise.then.completed (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<anonymous>)\n at callAsyncCircusFn (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:316:40)\n at processTicksAndRejections (node:internal/process/task_queues:95:5)\n at _runTest (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-circus@29.7.0/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-runner@29.7.0/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/node_modules/.pnpm/jest-runner@29.7.0/node_modules/jest-runner/build/runTest.js:444:34)"
|
|
1662
|
+
],
|
|
1663
|
+
"fullName": "Bank Account newly opened account has zero balance",
|
|
1664
|
+
"invocations": 1,
|
|
1665
|
+
"location": null,
|
|
1666
|
+
"numPassingAsserts": 0,
|
|
1667
|
+
"retryReasons": [],
|
|
1668
|
+
"status": "failed",
|
|
1669
|
+
"title": "newly opened account has zero balance"
|
|
1670
|
+
},
|
|
1671
|
+
{
|
|
1672
|
+
"ancestorTitles": [
|
|
1673
|
+
"Bank Account"
|
|
1674
|
+
],
|
|
1675
|
+
"duration": null,
|
|
1676
|
+
"failureDetails": [],
|
|
1677
|
+
"failureMessages": [],
|
|
1678
|
+
"fullName": "Bank Account can deposit money",
|
|
1679
|
+
"invocations": 1,
|
|
1680
|
+
"location": null,
|
|
1681
|
+
"numPassingAsserts": 0,
|
|
1682
|
+
"retryReasons": [],
|
|
1683
|
+
"status": "pending",
|
|
1684
|
+
"title": "can deposit money"
|
|
1685
|
+
},
|
|
1686
|
+
{
|
|
1687
|
+
"ancestorTitles": [
|
|
1688
|
+
"Bank Account"
|
|
1689
|
+
],
|
|
1690
|
+
"duration": null,
|
|
1691
|
+
"failureDetails": [],
|
|
1692
|
+
"failureMessages": [],
|
|
1693
|
+
"fullName": "Bank Account can deposit money sequentially",
|
|
1694
|
+
"invocations": 1,
|
|
1695
|
+
"location": null,
|
|
1696
|
+
"numPassingAsserts": 0,
|
|
1697
|
+
"retryReasons": [],
|
|
1698
|
+
"status": "pending",
|
|
1699
|
+
"title": "can deposit money sequentially"
|
|
1700
|
+
},
|
|
1701
|
+
{
|
|
1702
|
+
"ancestorTitles": [
|
|
1703
|
+
"Bank Account"
|
|
1704
|
+
],
|
|
1705
|
+
"duration": null,
|
|
1706
|
+
"failureDetails": [],
|
|
1707
|
+
"failureMessages": [],
|
|
1708
|
+
"fullName": "Bank Account can withdraw money",
|
|
1709
|
+
"invocations": 1,
|
|
1710
|
+
"location": null,
|
|
1711
|
+
"numPassingAsserts": 0,
|
|
1712
|
+
"retryReasons": [],
|
|
1713
|
+
"status": "pending",
|
|
1714
|
+
"title": "can withdraw money"
|
|
1715
|
+
},
|
|
1716
|
+
{
|
|
1717
|
+
"ancestorTitles": [
|
|
1718
|
+
"Bank Account"
|
|
1719
|
+
],
|
|
1720
|
+
"duration": null,
|
|
1721
|
+
"failureDetails": [],
|
|
1722
|
+
"failureMessages": [],
|
|
1723
|
+
"fullName": "Bank Account can withdraw money sequentially",
|
|
1724
|
+
"invocations": 1,
|
|
1725
|
+
"location": null,
|
|
1726
|
+
"numPassingAsserts": 0,
|
|
1727
|
+
"retryReasons": [],
|
|
1728
|
+
"status": "pending",
|
|
1729
|
+
"title": "can withdraw money sequentially"
|
|
1730
|
+
},
|
|
1731
|
+
{
|
|
1732
|
+
"ancestorTitles": [
|
|
1733
|
+
"Bank Account"
|
|
1734
|
+
],
|
|
1735
|
+
"duration": null,
|
|
1736
|
+
"failureDetails": [],
|
|
1737
|
+
"failureMessages": [],
|
|
1738
|
+
"fullName": "Bank Account checking balance of closed account throws error",
|
|
1739
|
+
"invocations": 1,
|
|
1740
|
+
"location": null,
|
|
1741
|
+
"numPassingAsserts": 0,
|
|
1742
|
+
"retryReasons": [],
|
|
1743
|
+
"status": "pending",
|
|
1744
|
+
"title": "checking balance of closed account throws error"
|
|
1745
|
+
},
|
|
1746
|
+
{
|
|
1747
|
+
"ancestorTitles": [
|
|
1748
|
+
"Bank Account"
|
|
1749
|
+
],
|
|
1750
|
+
"duration": null,
|
|
1751
|
+
"failureDetails": [],
|
|
1752
|
+
"failureMessages": [],
|
|
1753
|
+
"fullName": "Bank Account deposit into closed account throws error",
|
|
1754
|
+
"invocations": 1,
|
|
1755
|
+
"location": null,
|
|
1756
|
+
"numPassingAsserts": 0,
|
|
1757
|
+
"retryReasons": [],
|
|
1758
|
+
"status": "pending",
|
|
1759
|
+
"title": "deposit into closed account throws error"
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"ancestorTitles": [
|
|
1763
|
+
"Bank Account"
|
|
1764
|
+
],
|
|
1765
|
+
"duration": null,
|
|
1766
|
+
"failureDetails": [],
|
|
1767
|
+
"failureMessages": [],
|
|
1768
|
+
"fullName": "Bank Account withdraw from closed account throws error",
|
|
1769
|
+
"invocations": 1,
|
|
1770
|
+
"location": null,
|
|
1771
|
+
"numPassingAsserts": 0,
|
|
1772
|
+
"retryReasons": [],
|
|
1773
|
+
"status": "pending",
|
|
1774
|
+
"title": "withdraw from closed account throws error"
|
|
1775
|
+
},
|
|
1776
|
+
{
|
|
1777
|
+
"ancestorTitles": [
|
|
1778
|
+
"Bank Account"
|
|
1779
|
+
],
|
|
1780
|
+
"duration": null,
|
|
1781
|
+
"failureDetails": [],
|
|
1782
|
+
"failureMessages": [],
|
|
1783
|
+
"fullName": "Bank Account close already closed account throws error",
|
|
1784
|
+
"invocations": 1,
|
|
1785
|
+
"location": null,
|
|
1786
|
+
"numPassingAsserts": 0,
|
|
1787
|
+
"retryReasons": [],
|
|
1788
|
+
"status": "pending",
|
|
1789
|
+
"title": "close already closed account throws error"
|
|
1790
|
+
},
|
|
1791
|
+
{
|
|
1792
|
+
"ancestorTitles": [
|
|
1793
|
+
"Bank Account"
|
|
1794
|
+
],
|
|
1795
|
+
"duration": null,
|
|
1796
|
+
"failureDetails": [],
|
|
1797
|
+
"failureMessages": [],
|
|
1798
|
+
"fullName": "Bank Account open already opened account throws error",
|
|
1799
|
+
"invocations": 1,
|
|
1800
|
+
"location": null,
|
|
1801
|
+
"numPassingAsserts": 0,
|
|
1802
|
+
"retryReasons": [],
|
|
1803
|
+
"status": "pending",
|
|
1804
|
+
"title": "open already opened account throws error"
|
|
1805
|
+
},
|
|
1806
|
+
{
|
|
1807
|
+
"ancestorTitles": [
|
|
1808
|
+
"Bank Account"
|
|
1809
|
+
],
|
|
1810
|
+
"duration": null,
|
|
1811
|
+
"failureDetails": [],
|
|
1812
|
+
"failureMessages": [],
|
|
1813
|
+
"fullName": "Bank Account reopened account does not retain balance",
|
|
1814
|
+
"invocations": 1,
|
|
1815
|
+
"location": null,
|
|
1816
|
+
"numPassingAsserts": 0,
|
|
1817
|
+
"retryReasons": [],
|
|
1818
|
+
"status": "pending",
|
|
1819
|
+
"title": "reopened account does not retain balance"
|
|
1820
|
+
},
|
|
1821
|
+
{
|
|
1822
|
+
"ancestorTitles": [
|
|
1823
|
+
"Bank Account"
|
|
1824
|
+
],
|
|
1825
|
+
"duration": null,
|
|
1826
|
+
"failureDetails": [],
|
|
1827
|
+
"failureMessages": [],
|
|
1828
|
+
"fullName": "Bank Account cannot withdraw more than deposited",
|
|
1829
|
+
"invocations": 1,
|
|
1830
|
+
"location": null,
|
|
1831
|
+
"numPassingAsserts": 0,
|
|
1832
|
+
"retryReasons": [],
|
|
1833
|
+
"status": "pending",
|
|
1834
|
+
"title": "cannot withdraw more than deposited"
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
"ancestorTitles": [
|
|
1838
|
+
"Bank Account"
|
|
1839
|
+
],
|
|
1840
|
+
"duration": null,
|
|
1841
|
+
"failureDetails": [],
|
|
1842
|
+
"failureMessages": [],
|
|
1843
|
+
"fullName": "Bank Account cannot withdraw negative amount",
|
|
1844
|
+
"invocations": 1,
|
|
1845
|
+
"location": null,
|
|
1846
|
+
"numPassingAsserts": 0,
|
|
1847
|
+
"retryReasons": [],
|
|
1848
|
+
"status": "pending",
|
|
1849
|
+
"title": "cannot withdraw negative amount"
|
|
1850
|
+
},
|
|
1851
|
+
{
|
|
1852
|
+
"ancestorTitles": [
|
|
1853
|
+
"Bank Account"
|
|
1854
|
+
],
|
|
1855
|
+
"duration": null,
|
|
1856
|
+
"failureDetails": [],
|
|
1857
|
+
"failureMessages": [],
|
|
1858
|
+
"fullName": "Bank Account cannot deposit negative amount",
|
|
1859
|
+
"invocations": 1,
|
|
1860
|
+
"location": null,
|
|
1861
|
+
"numPassingAsserts": 0,
|
|
1862
|
+
"retryReasons": [],
|
|
1863
|
+
"status": "pending",
|
|
1864
|
+
"title": "cannot deposit negative amount"
|
|
1865
|
+
},
|
|
1866
|
+
{
|
|
1867
|
+
"ancestorTitles": [
|
|
1868
|
+
"Bank Account"
|
|
1869
|
+
],
|
|
1870
|
+
"duration": null,
|
|
1871
|
+
"failureDetails": [],
|
|
1872
|
+
"failureMessages": [],
|
|
1873
|
+
"fullName": "Bank Account changing balance directly throws error",
|
|
1874
|
+
"invocations": 1,
|
|
1875
|
+
"location": null,
|
|
1876
|
+
"numPassingAsserts": 0,
|
|
1877
|
+
"retryReasons": [],
|
|
1878
|
+
"status": "pending",
|
|
1879
|
+
"title": "changing balance directly throws error"
|
|
1880
|
+
}
|
|
1881
|
+
],
|
|
1882
|
+
"endTime": 1754332021585,
|
|
1883
|
+
"message": " ● Bank Account › newly opened account has zero balance\n\n Remove this line and implement the function\n\n 75 |\n 76 | open() {\n > 77 | throw new Error('Remove this line and implement the function');\n | ^\n 78 | }\n 79 |\n 80 | close() {\n\n at BankAccount.open (bank-account.js:77:11)\n at Object.open (bank-account.spec.js:7:13)\n",
|
|
1884
|
+
"name": "/Users/micah/dev/knowhow/packages/knowhow/benchmarks/exercises/filtered/bank-account/bank-account.spec.js",
|
|
1885
|
+
"startTime": 1754332021476,
|
|
1886
|
+
"status": "failed",
|
|
1887
|
+
"summary": ""
|
|
1888
|
+
}
|
|
1889
|
+
],
|
|
1890
|
+
"wasInterrupted": false
|
|
1891
|
+
}
|
|
1892
|
+
},
|
|
1893
|
+
"timeElapsed": 331.017,
|
|
1894
|
+
"cost": 0,
|
|
1895
|
+
"startTime": "2025-08-04T18:21:30.581Z",
|
|
1896
|
+
"endTime": "2025-08-04T18:27:01.598Z",
|
|
1897
|
+
"finalOutput": "Task terminated due to limits reached. Turn: 17/30, Cost: $0.0000/$1.0000, Runtime: 330301ms/300000ms"
|
|
1898
|
+
}
|
|
1899
|
+
],
|
|
1900
|
+
"summary": {
|
|
1901
|
+
"totalExercises": 10,
|
|
1902
|
+
"successCount": 10,
|
|
1903
|
+
"testableExercises": 10,
|
|
1904
|
+
"testsPassedCount": 5,
|
|
1905
|
+
"testsFailedCount": 5,
|
|
1906
|
+
"testPassRate": 0.5,
|
|
1907
|
+
"agentSuccessRate": 1,
|
|
1908
|
+
"failureCount": 0,
|
|
1909
|
+
"timeoutCount": 0,
|
|
1910
|
+
"costLimitCount": 0,
|
|
1911
|
+
"turnLimitCount": 0,
|
|
1912
|
+
"totalTime": 3263.567,
|
|
1913
|
+
"totalCost": 0,
|
|
1914
|
+
"averageTurns": 15.4,
|
|
1915
|
+
"averageTime": 326.3567,
|
|
1916
|
+
"successRate": 0.5
|
|
1917
|
+
},
|
|
1918
|
+
"startTime": "2025-08-04T17:32:22.308Z",
|
|
1919
|
+
"endTime": "2025-08-04T18:27:01.621Z"
|
|
1920
|
+
}
|