Compare commits

...

10 Commits

Author SHA1 Message Date
Janis 33e785d22a feat: NCS-40 Rework Draw System (#34)
Reviewed-on: #34
Reviewed-by: Shahd Lala <shosho996@blackhole.local>
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-19 22:44:48 +02:00
TeamCity d16cec176b ci: bump version with Build-42 2026-04-19 14:01:11 +00:00
Janis 8744bee2dd feat: NCS-41 Bot Platform (#33)
Co-authored-by: Janis <janis@nowchess.de>
Reviewed-on: #33
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-19 15:52:08 +02:00
TeamCity 5f4d33f3ca ci: bump version with Build-41 2026-04-16 16:55:00 +00:00
Janis 767d3051a7 feat: NCS-13 Implement Threefold Repetition (#31)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #31
2026-04-16 18:49:20 +02:00
TeamCity b2e62dc60c ci: bump version with Build-40 2026-04-14 19:23:01 +00:00
Janis b0399a4e48 feat: NCS-14 implemented insufficient moves rule (#30)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #30
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-14 21:17:56 +02:00
TeamCity ec2ab2f365 ci: bump version with Build-39 2026-04-12 19:03:52 +00:00
Janis fd4e67d4f7 feat: NCS-25 Add linters to keep quality up (#27)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #27
Reviewed-by: Leon Hermann <lq@blackhole.local>
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-12 20:58:39 +02:00
TeamCity 3cb3160731 ci: bump version with Build-38 2026-04-12 17:41:12 +00:00
322 changed files with 11320 additions and 13682 deletions
+163 -32
View File
@@ -2,8 +2,8 @@
> **Stack:** raw-http | none | unknown | scala
> 0 routes | 0 models | 0 components | 35 lib files | 0 env vars | 0 middleware
> **Token savings:** this file is ~3.700 tokens. Without it, AI exploration would cost ~18.200 tokens. **Saves ~14.500 tokens per conversation.**
> 0 routes | 0 models | 0 components | 63 lib files | 1 env vars | 1 middleware
> **Token savings:** this file is ~0 tokens. Without it, AI exploration would cost ~0 tokens. **Saves ~0 tokens per conversation.**
---
@@ -60,6 +60,113 @@
- class ApiResponse
- function error
- function totalPages
- `modules/bot/python/nnue.py`
- function get_weights_dir: ()
- function get_data_dir: ()
- function list_checkpoints: ()
- function migrate_legacy_data: ()
- function show_header: ()
- function show_checkpoints_table: ()
- _...10 more_
- `modules/bot/python/src/dataset.py`
- function get_datasets_dir: () -> Path
- function next_dataset_version: () -> int
- function list_datasets: () -> List[Tuple[int, Dict]]
- function load_dataset_metadata: (version) -> Optional[Dict]
- function save_dataset_metadata: (version, metadata) -> None
- function create_dataset: (version, labeled_jsonl_path, sources, stockfish_depth) -> Path
- _...4 more_
- `modules/bot/python/src/export.py` — function export_to_nbai: (weights_file, output_file, trained_by, train_loss)
- `modules/bot/python/src/generate.py` — function play_random_game_and_collect_positions: (output_file, total_positions, samples_per_game, min_move, max_move, num_workers)
- `modules/bot/python/src/label.py` — function normalize_evaluation: (cp_value, method, scale), function label_positions_with_stockfish: (positions_file, output_file, stockfish_path, batch_size, depth, verbose, normalize, num_workers)
- `modules/bot/python/src/tactical_positions_extractor.py`
- function download_and_extract_puzzle_db: (url, output_dir)
- function extract_puzzle_positions: (puzzle_csv, max_puzzles) -> Set[str]
- function load_positions_from_file: (file_path) -> Set[str]
- function merge_positions: (tactical, other, output_file)
- function extract_tactical_only: (puzzle_csv, output_file, max_puzzles) -> int
- function interactive_merge_positions: (puzzle_csv, output_file, max_puzzles)
- `modules/bot/python/src/train.py`
- function fen_to_features: (fen)
- function find_next_version: (base_name)
- function save_metadata: (weights_file, metadata)
- function train_nnue: (data_file, output_file, epochs, batch_size, lr, checkpoint, stockfish_depth, use_versioning, early_stopping_patience, weight_decay, subsample_ratio)
- function burst_train: (data_file, output_file, duration_minutes, epochs_per_season, early_stopping_patience, batch_size, lr, initial_checkpoint, stockfish_depth, use_versioning, weight_decay, subsample_ratio)
- class NNUEDataset
- _...1 more_
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`
- class Bot
- function name
- function nextMove
- `modules/bot/src/main/scala/de/nowchess/bot/BotController.scala`
- class BotController
- function getBot
- function listBots
- `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`
- class BotMoveRepetition
- function blockedMoves
- function repeatedMove
- function filterAllowed
- `modules/bot/src/main/scala/de/nowchess/bot/Config.scala` — class Config
- `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`
- class Evaluation
- class CHECKMATE_SCORE
- class DRAW_SCORE
- function evaluate
- function initAccumulator
- function copyAccumulator
- _...2 more_
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`
- class EvaluationClassic
- function evaluate
- function countRay
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala` — class EvaluationNNUE, function evaluate
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`
- class NNUE
- function initAccumulator
- function pushAccumulator
- function copyAccumulator
- function recomputeAccumulator
- function validateAccumulator
- _...4 more_
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiLoader.scala`
- class NbaiLoader
- function load
- function loadDefault
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiMigrator.scala` — class NbaiMigrator, function migrateFromBin
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiModel.scala`
- function toJson
- class NbaiMetadata
- function fromJson
- function str
- function num
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiWriter.scala` — class NbaiWriter, function write
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`
- function bestMove
- function bestMove
- function bestMoveWithTime
- function bestMoveWithTime
- function loop
- function loop
- _...2 more_
- `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`
- class MoveOrdering
- class OrderingContext
- function addKillerMove
- function getKillerMoves
- function addHistory
- function getHistory
- _...3 more_
- `modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala`
- function probe
- function store
- function clear
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — function probe, function select
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` — class PolyglotHash, function hash
- `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`
- class ZobristHash
- function hash
- function nextHash
- `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`
- class Command
- function execute
@@ -82,7 +189,7 @@
- function turn
- function context
- function canUndo
- _...10 more_
- _...11 more_
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`
- function context
- class Observer
@@ -93,6 +200,13 @@
- _...1 more_
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — class GameContextExport, function exportGameContext
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — class GameContextImport, function importGameContext
- `modules/io/src/main/scala/de/nowchess/io/GameFileService.scala`
- class GameFileService
- function saveGameToFile
- function loadGameFromFile
- class FileSystemGameService
- function saveGameToFile
- function loadGameFromFile
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala`
- class FenExporter
- function boardToFen
@@ -114,6 +228,8 @@
- function parseBoard
- function importGameContext
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — function buildSquares
- `modules/io/src/main/scala/de/nowchess/io/json/JsonExporter.scala` — class JsonExporter, function exportGameContext
- `modules/io/src/main/scala/de/nowchess/io/json/JsonParser.scala` — class JsonParser, function importGameContext
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala`
- class PgnExporter
- function exportGameContext
@@ -160,43 +276,58 @@
---
# Config
## Environment Variables
- `STOCKFISH_PATH` **required** — modules/bot/python/nnue.py
---
# Middleware
## custom
- generate — `modules/bot/python/src/generate.py`
---
# Dependency Graph
## Most Imported Files (change these carefully)
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **28** files
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **21** files
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **19** files
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **14** files
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **13** files
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **10** files
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **9** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **9** files
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **8** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **7** files
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **4** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **4** files
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **4** files
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **60** files
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **40** files
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **39** files
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **36** files
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **22** files
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **21** files
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **21** files
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **17** files
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **10** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **10** files
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **8** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **8** files
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — imported by **5** files
- `modules/bot/src/main/scala/de/nowchess/bot/BotDifficulty.scala` — imported by **5** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **5** files
- `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala` — imported by **4** files
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` — imported by **4** files
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala` — imported by **4** files
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala` — imported by **4** files
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala` — imported by **4** files
- `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala` — imported by **4** files
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnParser.scala` — imported by **2** files
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` — imported by **2** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala` — imported by **2** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — imported by **2** files
- `modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala` — imported by **1** files
## Import Map (who imports what)
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala``modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerBranchTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala` +23 more
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala` +16 more
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala` +14 more
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala` +9 more
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineGameEndingTest.scala` +8 more
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala``modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala` +5 more
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala``modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala` +4 more
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala``modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala` +4 more
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala``modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` +3 more
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala``modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserCombinators.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserFastParse.scala` +2 more
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala``modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`, `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala` +55 more
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala` +35 more
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` +34 more
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala` +31 more
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +17 more
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` +16 more
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +16 more
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +12 more
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +5 more
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala``modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala` +5 more
---
+5
View File
@@ -0,0 +1,5 @@
# Config
## Environment Variables
- `STOCKFISH_PATH` **required** — modules/bot/python/nnue.py
+29 -29
View File
@@ -2,36 +2,36 @@
## Most Imported Files (change these carefully)
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **28** files
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **21** files
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **19** files
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **14** files
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **13** files
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **10** files
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **9** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **9** files
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **8** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **7** files
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **4** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **4** files
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **4** files
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **60** files
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **40** files
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **39** files
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **36** files
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **22** files
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **21** files
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **21** files
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **17** files
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **10** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **10** files
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **8** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **8** files
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — imported by **5** files
- `modules/bot/src/main/scala/de/nowchess/bot/BotDifficulty.scala` — imported by **5** files
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **5** files
- `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala` — imported by **4** files
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` — imported by **4** files
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala` — imported by **4** files
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala` — imported by **4** files
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala` — imported by **4** files
- `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala` — imported by **4** files
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnParser.scala` — imported by **2** files
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` — imported by **2** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala` — imported by **2** files
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — imported by **2** files
- `modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala` — imported by **1** files
## Import Map (who imports what)
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala``modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerBranchTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala` +23 more
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala` +16 more
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala` +14 more
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala` +9 more
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineGameEndingTest.scala` +8 more
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala``modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala` +5 more
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala``modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala` +4 more
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala``modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala` +4 more
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala``modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` +3 more
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala``modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserCombinators.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserFastParse.scala` +2 more
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala``modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`, `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala` +55 more
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala` +35 more
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` +34 more
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala` +31 more
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala``modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +17 more
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` +16 more
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +16 more
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +12 more
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala``modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +5 more
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala``modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala` +5 more
+117 -1
View File
@@ -51,6 +51,113 @@
- class ApiResponse
- function error
- function totalPages
- `modules/bot/python/nnue.py`
- function get_weights_dir: ()
- function get_data_dir: ()
- function list_checkpoints: ()
- function migrate_legacy_data: ()
- function show_header: ()
- function show_checkpoints_table: ()
- _...10 more_
- `modules/bot/python/src/dataset.py`
- function get_datasets_dir: () -> Path
- function next_dataset_version: () -> int
- function list_datasets: () -> List[Tuple[int, Dict]]
- function load_dataset_metadata: (version) -> Optional[Dict]
- function save_dataset_metadata: (version, metadata) -> None
- function create_dataset: (version, labeled_jsonl_path, sources, stockfish_depth) -> Path
- _...4 more_
- `modules/bot/python/src/export.py` — function export_to_nbai: (weights_file, output_file, trained_by, train_loss)
- `modules/bot/python/src/generate.py` — function play_random_game_and_collect_positions: (output_file, total_positions, samples_per_game, min_move, max_move, num_workers)
- `modules/bot/python/src/label.py` — function normalize_evaluation: (cp_value, method, scale), function label_positions_with_stockfish: (positions_file, output_file, stockfish_path, batch_size, depth, verbose, normalize, num_workers)
- `modules/bot/python/src/tactical_positions_extractor.py`
- function download_and_extract_puzzle_db: (url, output_dir)
- function extract_puzzle_positions: (puzzle_csv, max_puzzles) -> Set[str]
- function load_positions_from_file: (file_path) -> Set[str]
- function merge_positions: (tactical, other, output_file)
- function extract_tactical_only: (puzzle_csv, output_file, max_puzzles) -> int
- function interactive_merge_positions: (puzzle_csv, output_file, max_puzzles)
- `modules/bot/python/src/train.py`
- function fen_to_features: (fen)
- function find_next_version: (base_name)
- function save_metadata: (weights_file, metadata)
- function train_nnue: (data_file, output_file, epochs, batch_size, lr, checkpoint, stockfish_depth, use_versioning, early_stopping_patience, weight_decay, subsample_ratio)
- function burst_train: (data_file, output_file, duration_minutes, epochs_per_season, early_stopping_patience, batch_size, lr, initial_checkpoint, stockfish_depth, use_versioning, weight_decay, subsample_ratio)
- class NNUEDataset
- _...1 more_
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`
- class Bot
- function name
- function nextMove
- `modules/bot/src/main/scala/de/nowchess/bot/BotController.scala`
- class BotController
- function getBot
- function listBots
- `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`
- class BotMoveRepetition
- function blockedMoves
- function repeatedMove
- function filterAllowed
- `modules/bot/src/main/scala/de/nowchess/bot/Config.scala` — class Config
- `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`
- class Evaluation
- class CHECKMATE_SCORE
- class DRAW_SCORE
- function evaluate
- function initAccumulator
- function copyAccumulator
- _...2 more_
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`
- class EvaluationClassic
- function evaluate
- function countRay
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala` — class EvaluationNNUE, function evaluate
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`
- class NNUE
- function initAccumulator
- function pushAccumulator
- function copyAccumulator
- function recomputeAccumulator
- function validateAccumulator
- _...4 more_
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiLoader.scala`
- class NbaiLoader
- function load
- function loadDefault
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiMigrator.scala` — class NbaiMigrator, function migrateFromBin
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiModel.scala`
- function toJson
- class NbaiMetadata
- function fromJson
- function str
- function num
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiWriter.scala` — class NbaiWriter, function write
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`
- function bestMove
- function bestMove
- function bestMoveWithTime
- function bestMoveWithTime
- function loop
- function loop
- _...2 more_
- `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`
- class MoveOrdering
- class OrderingContext
- function addKillerMove
- function getKillerMoves
- function addHistory
- function getHistory
- _...3 more_
- `modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala`
- function probe
- function store
- function clear
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — function probe, function select
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` — class PolyglotHash, function hash
- `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`
- class ZobristHash
- function hash
- function nextHash
- `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`
- class Command
- function execute
@@ -73,7 +180,7 @@
- function turn
- function context
- function canUndo
- _...10 more_
- _...11 more_
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`
- function context
- class Observer
@@ -84,6 +191,13 @@
- _...1 more_
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — class GameContextExport, function exportGameContext
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — class GameContextImport, function importGameContext
- `modules/io/src/main/scala/de/nowchess/io/GameFileService.scala`
- class GameFileService
- function saveGameToFile
- function loadGameFromFile
- class FileSystemGameService
- function saveGameToFile
- function loadGameFromFile
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala`
- class FenExporter
- function boardToFen
@@ -105,6 +219,8 @@
- function parseBoard
- function importGameContext
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — function buildSquares
- `modules/io/src/main/scala/de/nowchess/io/json/JsonExporter.scala` — class JsonExporter, function exportGameContext
- `modules/io/src/main/scala/de/nowchess/io/json/JsonParser.scala` — class JsonParser, function importGameContext
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala`
- class PgnExporter
- function exportGameContext
+4
View File
@@ -0,0 +1,4 @@
# Middleware
## custom
- generate — `modules/bot/python/src/generate.py`
+41
View File
@@ -0,0 +1,41 @@
# Normalize text files in the repo
* text=auto eol=lf
# Keep Windows command scripts in CRLF
*.bat text eol=crlf
*.cmd text eol=crlf
# Keep Unix shell scripts in LF
*.sh text eol=lf
# Binary assets (no EOL normalization / textual diff)
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.webp binary
*.bmp binary
*.ico binary
# ML / model / numeric artifacts
*.bin binary
*.pt binary
*.pth binary
*.onnx binary
*.h5 binary
*.hdf5 binary
*.pb binary
*.tflite binary
*.npy binary
*.npz binary
*.safetensors binary
# Firmware / hex-like artifacts
*.hex binary
# Packaged binaries
*.jar binary
*.zip binary
*.7z binary
*.gz binary
+2
View File
@@ -38,6 +38,8 @@ bin/
### VS Code ###
.vscode/
graphify-out/
.graphify_*.json
### Mac OS ###
.DS_Store
+2
View File
@@ -8,3 +8,5 @@
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/
sonarlint.xml
+133
View File
@@ -0,0 +1,133 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<AndroidXmlCodeStyleSettings>
<option name="USE_CUSTOM_SETTINGS" value="true" />
</AndroidXmlCodeStyleSettings>
<JetCodeStyleSettings>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<ScalaCodeStyleSettings>
<option name="FORMATTER" value="1" />
</ScalaCodeStyleSettings>
<XML>
<option name="XML_KEEP_LINE_BREAKS" value="false" />
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
<option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
</XML>
<codeStyleSettings language="XML">
<option name="FORCE_REARRANGE_MODE" value="1" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme>
</component>
+1 -1
View File
@@ -1,5 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
+1
View File
@@ -11,6 +11,7 @@
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/modules" />
<option value="$PROJECT_DIR$/modules/api" />
<option value="$PROJECT_DIR$/modules/bot" />
<option value="$PROJECT_DIR$/modules/core" />
<option value="$PROJECT_DIR$/modules/io" />
<option value="$PROJECT_DIR$/modules/rule" />
+1 -1
View File
@@ -5,7 +5,7 @@
<option name="deprecationWarnings" value="true" />
<option name="uncheckedWarnings" value="true" />
</profile>
<profile name="Gradle 2" modules="NowChessSystems.modules.core.main,NowChessSystems.modules.core.scoverage,NowChessSystems.modules.core.test,NowChessSystems.modules.io.main,NowChessSystems.modules.io.scoverage,NowChessSystems.modules.io.test,NowChessSystems.modules.rule.main,NowChessSystems.modules.rule.scoverage,NowChessSystems.modules.rule.test,NowChessSystems.modules.ui.main,NowChessSystems.modules.ui.scoverage,NowChessSystems.modules.ui.test">
<profile name="Gradle 2" modules="NowChessSystems.modules.bot.main,NowChessSystems.modules.bot.scoverage,NowChessSystems.modules.bot.test,NowChessSystems.modules.core.main,NowChessSystems.modules.core.scoverage,NowChessSystems.modules.core.test,NowChessSystems.modules.io.main,NowChessSystems.modules.io.scoverage,NowChessSystems.modules.io.test,NowChessSystems.modules.rule.main,NowChessSystems.modules.rule.scoverage,NowChessSystems.modules.rule.test,NowChessSystems.modules.ui.main,NowChessSystems.modules.ui.scoverage,NowChessSystems.modules.ui.test">
<option name="deprecationWarnings" value="true" />
<option name="uncheckedWarnings" value="true" />
<parameters>
+15
View File
@@ -0,0 +1,15 @@
rules = [
DisableSyntax,
LeakingImplicitClassVal,
NoValInForComprehension,
ProcedureSyntax,
]
DisableSyntax.noVars = true
DisableSyntax.noThrows = true
DisableSyntax.noNulls = true
DisableSyntax.noReturns = true
DisableSyntax.noAsInstanceOf = true
DisableSyntax.noIsInstanceOf = true
DisableSyntax.noXml = true
DisableSyntax.noFinalize = true
+8
View File
@@ -0,0 +1,8 @@
version = 3.8.1
runner.dialect = scala3
maxColumn = 120
indent.main = 2
align.preset = more
trailingCommas = always
rewrite.rules = [SortImports, RedundantBraces]
rewrite.scala3.convertToNewSyntax = true
+6 -6
View File
@@ -1,7 +1,7 @@
YOU CAN:
- Edit and use the asset in any commercial or non commercial project
- Use the asset in any commercial or non commercial project
YOU CAN'T:
- Resell or distribute the asset to others
YOU CAN:
- Edit and use the asset in any commercial or non commercial project
- Use the asset in any commercial or non commercial project
YOU CAN'T:
- Resell or distribute the asset to others
- Edit and resell the asset to others - - Credits required using This link: https://fatman200.itch.io/
+9
View File
@@ -19,6 +19,7 @@ Try to stick to these commands for consistency.
| `api` | Model / shared types | (none) |
| `core` | Primary business logic | api, rule |
| `rule` | Game rules | api |
| `bot` | Bots and AI | api,rule,io |
| `io` | Export formats | api, core |
| `ui` | Entrypoint & UI | core, io |
@@ -37,11 +38,19 @@ Try to stick to these commands for consistency.
- **Coverage:** 100% condition coverage required in `api`, `core`, `rule`, `io` (mandatory); `ui` exempt.
### Linters
- **scalafmt** — enforces formatting; run `./gradlew spotlessScalaCheck` to check and `./gradlew spotlessScalaApply` to refactor.
- **scalafix** — enforces style and detects unused imports/code; run `./gradlew scalafix` to apply rules.
## Architecture Decisions
- **Immutable state as primary model:** GameContext (api) holds board, history, player state — immutable, passed through the system. Each move creates a new GameContext, enabling undo/redo without side effects.
- **Observer pattern for UI decoupling:** GameEngine publishes move/state events; CommandInvoker queues moves; UI listens to events, not polling. GameEngine never imports UI code.
- **RuleSet trait encapsulates rules:** Move generation, check, castling, en passant all in RuleSet impl. GameEngine calls rules as a black box; rules don't know about the rest of core.
- **Polyglot hash must follow spec index layout:** piece keys use interleaved mapping `(pieceType * 2 + colorBit)` with black=0/white=1, castling keys are `768..771`, en-passant file keys are `772..779` and are XORed only if side-to-move has a pawn that can capture en passant, side-to-move key is `780` for white.
- **Alpha-beta uses sequential PV search by default:** parallel split was disabled because fixed-window futures removed pruning effectiveness; correctness and pruning quality take priority over speculative parallelism.
- **Search hash is updated incrementally per move:** bot search now updates Zobrist keys from parent hash with move deltas instead of recomputing piece scans at every node.
## Rules
+47
View File
@@ -1,6 +1,8 @@
plugins {
id("org.sonarqube") version "7.2.3.7755"
id("org.scoverage") version "8.1" apply false
id("com.diffplug.spotless") version "8.4.0" apply false
id("io.github.cosmicsilence.scalafix") version "0.2.6" apply false
}
group = "de.nowchess"
@@ -20,6 +22,26 @@ sonar {
}.joinToString(",")
property("sonar.scala.coverage.reportPaths", scoverageReports)
property(
"sonar.coverage.exclusions",
// UI renders JavaFX components; headless test environments cannot exercise rendering paths
"modules/ui/**," +
// FastParse macro-generated combinators produce synthetic branches that scoverage marks as uncovered
"modules/io/src/main/scala/de/nowchess/io/fen/FenParserFastParse*," +
// NNUE inference pipeline — coverage requires a trained model file not present in CI
"**/bot/**/NNUE.scala," +
"**/bot/**/NNUEBot.scala," +
"**/bot/**/EvaluationNNUE.scala," +
// NBAI binary format loader/writer — error paths require crafted corrupt files; migrator is a one-shot tool
"**/bot/**/NbaiLoader.scala," +
"**/bot/**/NbaiModel.scala," +
"**/bot/**/NbaiMigrator.scala," +
"**/bot/**/NbaiWriter.scala," +
// PolyglotBook — binary I/O and dead-code guards (bit-masked fields can never exceed valid range)
"**/bot/**/PolyglotBook.scala," +
"**/bot/**/MoveOrdering.scala," +
"**/bot/**/AlphaBetaSearch.scala"
)
}
}
@@ -33,6 +55,7 @@ val versions = mapOf(
"SCALAFX" to "21.0.0-R32",
"JAVAFX" to "21.0.1",
"JUNIT_BOM" to "5.13.4",
"ONNXRUNTIME" to "1.19.2",
"SCALA_PARSER_COMBINATORS" to "2.4.0",
"FASTPARSE" to "3.0.2",
"JACKSON" to "2.17.2",
@@ -40,3 +63,27 @@ val versions = mapOf(
)
extra["VERSIONS"] = versions
subprojects {
apply(plugin = "com.diffplug.spotless")
pluginManager.withPlugin("scala") {
configure<com.diffplug.gradle.spotless.SpotlessExtension> {
scala {
scalafmt().configFile(rootProject.file(".scalafmt.conf"))
}
}
apply(plugin = "io.github.cosmicsilence.scalafix")
configure<io.github.cosmicsilence.scalafix.ScalafixExtension> {
configFile.set(rootProject.file(".scalafix.conf"))
}
// Disable SemanticDB config for the scoverage source set — it sets -sourceroot to
// the root project dir, which conflicts with scoverage's own -sourceroot and causes
// reportTestScoverage to fail with "No source root found".
tasks.matching { it.name in setOf("configSemanticDBScoverage", "checkScalafixScoverage", "checkScalafixTest") }.configureEach {
enabled = false
}
}
}
Regular → Executable
View File
-396
View File
@@ -1,396 +0,0 @@
{
"nodes": [
{
"id": "claude_md_project_instructions",
"label": "Now-Chess Project Instructions (CLAUDE.md)",
"file_type": "document",
"source_file": "CLAUDE.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "agents_md_config",
"label": "Agents Configuration (AGENTS.md)",
"file_type": "document",
"source_file": "AGENTS.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "api_changelog",
"label": "API Module Changelog",
"file_type": "document",
"source_file": "modules/api/CHANGELOG.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_changelog",
"label": "UI Module Changelog",
"file_type": "document",
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "rule_changelog",
"label": "Rule Module Changelog",
"file_type": "document",
"source_file": "modules/rule/CHANGELOG.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "io_changelog",
"label": "IO Module Changelog",
"file_type": "document",
"source_file": "modules/io/CHANGELOG.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "core_changelog",
"label": "Core Module Changelog",
"file_type": "document",
"source_file": "modules/core/CHANGELOG.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "bot_python_readme",
"label": "Bot Python Module README",
"file_type": "document",
"source_file": "modules/bot/python/README.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "bot_python_requirements",
"label": "Bot Python Requirements",
"file_type": "document",
"source_file": "modules/bot/python/requirements.txt",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "bot_python_positions",
"label": "Bot Python Positions Dataset",
"file_type": "document",
"source_file": "modules/bot/python/data/positions.txt",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "security_doc",
"label": "Security Documentation",
"file_type": "document",
"source_file": "docs/Security.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "claude_skills_doc",
"label": "Claude Skills Documentation",
"file_type": "document",
"source_file": "docs/Claude-Skills.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "idea_doc",
"label": "Idea Documentation",
"file_type": "document",
"source_file": "docs/idea.md",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "arabian_chess_license",
"label": "Arabian Chess License",
"file_type": "document",
"source_file": "ARABIAN CHESS/license.txt",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_board_sprite_black",
"label": "UI Board Square Black Sprite",
"file_type": "image",
"source_file": "modules/ui/src/main/resources/sprites/board/board_square_black.png",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_board_sprite_white",
"label": "UI Board Square White Sprite",
"file_type": "image",
"source_file": "modules/ui/src/main/resources/sprites/board/board_square_white.png",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_board_sprite_bottom",
"label": "UI Board Bottom Sprite",
"file_type": "image",
"source_file": "modules/ui/src/main/resources/sprites/board/board_bottom.png",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_piece_sprite_black_rook",
"label": "UI Black Rook Piece Sprite",
"file_type": "image",
"source_file": "modules/ui/src/main/resources/sprites/pieces/black_rook.png",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_piece_sprite_white_pawn",
"label": "UI White Pawn Piece Sprite",
"file_type": "image",
"source_file": "modules/ui/src/main/resources/sprites/pieces/white_pawn.png",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_piece_sprite_white_knight",
"label": "UI White Knight Piece Sprite",
"file_type": "image",
"source_file": "modules/ui/src/main/resources/sprites/pieces/white_knight.png",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
},
{
"id": "ui_piece_sprite_black_knight",
"label": "UI Black Knight Piece Sprite",
"file_type": "image",
"source_file": "modules/ui/src/main/resources/sprites/pieces/black_knight.png",
"source_location": null,
"source_url": null,
"captured_at": null,
"author": null,
"contributor": null
}
],
"edges": [
{
"source": "claude_md_project_instructions",
"target": "agents_md_config",
"relation": "references",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "CLAUDE.md",
"source_location": null,
"weight": 1.0
},
{
"source": "bot_python_readme",
"target": "bot_python_requirements",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.85,
"source_file": "modules/bot/python/README.md",
"source_location": null,
"weight": 1.0
},
{
"source": "bot_python_readme",
"target": "bot_python_positions",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "modules/bot/python/README.md",
"source_location": null,
"weight": 1.0
},
{
"source": "ui_changelog",
"target": "ui_board_sprite_black",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.75,
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"weight": 1.0
},
{
"source": "ui_changelog",
"target": "ui_board_sprite_white",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.75,
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"weight": 1.0
},
{
"source": "ui_changelog",
"target": "ui_piece_sprite_black_rook",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.75,
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"weight": 1.0
},
{
"source": "ui_changelog",
"target": "ui_piece_sprite_white_pawn",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.75,
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"weight": 1.0
},
{
"source": "ui_changelog",
"target": "ui_piece_sprite_white_knight",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.75,
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"weight": 1.0
},
{
"source": "ui_changelog",
"target": "ui_piece_sprite_black_knight",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.75,
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"weight": 1.0
},
{
"source": "ui_changelog",
"target": "ui_board_sprite_bottom",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.75,
"source_file": "modules/ui/CHANGELOG.md",
"source_location": null,
"weight": 1.0
},
{
"source": "claude_skills_doc",
"target": "agents_md_config",
"relation": "references",
"confidence": "INFERRED",
"confidence_score": 0.7,
"source_file": "docs/Claude-Skills.md",
"source_location": null,
"weight": 1.0
}
],
"hyperedges": [
{
"id": "module_changelogs",
"label": "Module Changelog Documentation",
"nodes": [
"api_changelog",
"ui_changelog",
"rule_changelog",
"io_changelog",
"core_changelog"
],
"relation": "form",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "modules"
},
{
"id": "ui_sprite_assets",
"label": "UI Sprite Asset Collection",
"nodes": [
"ui_board_sprite_black",
"ui_board_sprite_white",
"ui_board_sprite_bottom",
"ui_piece_sprite_black_rook",
"ui_piece_sprite_white_pawn",
"ui_piece_sprite_white_knight",
"ui_piece_sprite_black_knight"
],
"relation": "participate_in",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "modules/ui/src/main/resources/sprites"
},
{
"id": "bot_python_components",
"label": "Bot Python Implementation Components",
"nodes": [
"bot_python_readme",
"bot_python_requirements",
"bot_python_positions"
],
"relation": "participate_in",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "modules/bot/python"
}
],
"input_tokens": 0,
"output_tokens": 0
}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
/usr/bin/python
-413
View File
@@ -1,413 +0,0 @@
# Graph Report - . (2026-04-12)
## Corpus Check
- 78 files · ~273,497 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 480 nodes · 549 edges · 74 communities detected
- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
- Token cost: 0 input · 0 output
## God Nodes (most connected - your core abstractions)
1. `DefaultRules` - 35 edges
2. `GameEngine` - 29 edges
3. `ChessBoardView` - 17 edges
4. `FenParserFastParse` - 17 edges
5. `FenParserCombinators` - 16 edges
6. `PgnParser` - 14 edges
7. `FenParser` - 9 edges
8. `CommandInvoker` - 9 edges
9. `GameContext` - 8 edges
10. `FenExporter` - 7 edges
## Surprising Connections (you probably didn't know these)
- None detected - all connections are within the same source files.
## Communities
### Community 0 - "Community 0"
Cohesion: 0.11
Nodes (2): CastlingMove, DefaultRules
### Community 1 - "Community 1"
Cohesion: 0.09
Nodes (17): ClassGap, _compact_ranges(), _find_scoverage_xml(), format_agent(), format_json(), format_markdown(), format_module_gaps(), main() (+9 more)
### Community 2 - "Community 2"
Cohesion: 0.11
Nodes (2): GameEngine, PendingPromotion
### Community 3 - "Community 3"
Cohesion: 0.09
Nodes (4): FenParserCombinators, EmptyToken, FenParserSupport, PieceToken
### Community 4 - "Community 4"
Cohesion: 0.14
Nodes (9): format_module(), load_module(), main(), ModuleResult, parse_suite_xml(), run(), SuiteResult, TestCase (+1 more)
### Community 5 - "Community 5"
Cohesion: 0.2
Nodes (1): ChessBoardView
### Community 6 - "Community 6"
Cohesion: 0.15
Nodes (1): FenParserFastParse
### Community 7 - "Community 7"
Cohesion: 0.12
Nodes (7): InvalidFormat, InvalidMove, MoveCommand, MoveResult, QuitCommand, ResetCommand, Successful
### Community 8 - "Community 8"
Cohesion: 0.12
Nodes (12): BoardResetEvent, CheckDetectedEvent, CheckmateEvent, DrawClaimedEvent, FiftyMoveRuleAvailableEvent, InvalidMoveEvent, MoveExecutedEvent, MoveRedoneEvent (+4 more)
### Community 9 - "Community 9"
Cohesion: 0.26
Nodes (2): PgnGame, PgnParser
### Community 10 - "Community 10"
Cohesion: 0.15
Nodes (3): candidateMoves(), GameEngineIntegrationTest, legalMoves()
### Community 11 - "Community 11"
Cohesion: 0.14
Nodes (1): GameEnginePromotionTest
### Community 12 - "Community 12"
Cohesion: 0.15
Nodes (2): EngineTestHelpers, MockObserver
### Community 13 - "Community 13"
Cohesion: 0.17
Nodes (3): CommandInvokerBranchTest, ConditionalFailCommand, FailingCommand
### Community 14 - "Community 14"
Cohesion: 0.36
Nodes (1): FenParser
### Community 15 - "Community 15"
Cohesion: 0.22
Nodes (1): CommandInvoker
### Community 16 - "Community 16"
Cohesion: 0.31
Nodes (5): applyMove(), Board, removed(), updated(), withMove()
### Community 17 - "Community 17"
Cohesion: 0.22
Nodes (1): GameContext
### Community 18 - "Community 18"
Cohesion: 0.25
Nodes (6): ApiError, ApiResponse, Failure, PagedResponse, Pagination, Success
### Community 19 - "Community 19"
Cohesion: 0.43
Nodes (1): FenExporter
### Community 20 - "Community 20"
Cohesion: 0.29
Nodes (1): CastlingRights
### Community 21 - "Community 21"
Cohesion: 0.4
Nodes (2): ChessGUIApp, ChessGUILauncher
### Community 22 - "Community 22"
Cohesion: 0.5
Nodes (2): offset(), Square
### Community 23 - "Community 23"
Cohesion: 0.4
Nodes (2): PlayerId, PlayerInfo
### Community 24 - "Community 24"
Cohesion: 0.5
Nodes (2): PieceSprites, SquareColors
### Community 25 - "Community 25"
Cohesion: 0.6
Nodes (1): TerminalUI
### Community 26 - "Community 26"
Cohesion: 0.6
Nodes (1): PgnExporter
### Community 27 - "Community 27"
Cohesion: 0.67
Nodes (1): GUIObserver
### Community 28 - "Community 28"
Cohesion: 0.5
Nodes (1): DefaultRulesStateTransitionsTest
### Community 29 - "Community 29"
Cohesion: 0.5
Nodes (2): EndingMockObserver, GameEngineGameEndingTest
### Community 30 - "Community 30"
Cohesion: 0.5
Nodes (2): GameEngineLoadGameTest, MockObserver
### Community 31 - "Community 31"
Cohesion: 0.5
Nodes (1): CommandInvokerTest
### Community 32 - "Community 32"
Cohesion: 0.67
Nodes (1): Parser
### Community 33 - "Community 33"
Cohesion: 0.67
Nodes (0):
### Community 34 - "Community 34"
Cohesion: 0.67
Nodes (1): Main
### Community 35 - "Community 35"
Cohesion: 0.67
Nodes (1): Renderer
### Community 36 - "Community 36"
Cohesion: 0.67
Nodes (1): PgnExporterTest
### Community 37 - "Community 37"
Cohesion: 0.67
Nodes (1): FenExporterTest
### Community 38 - "Community 38"
Cohesion: 0.67
Nodes (1): GameEngineNotationTest
### Community 39 - "Community 39"
Cohesion: 0.67
Nodes (1): MoveCommandTest
### Community 40 - "Community 40"
Cohesion: 1.0
Nodes (1): PieceTest
### Community 41 - "Community 41"
Cohesion: 1.0
Nodes (1): PieceTypeTest
### Community 42 - "Community 42"
Cohesion: 1.0
Nodes (1): SquareTest
### Community 43 - "Community 43"
Cohesion: 1.0
Nodes (1): CastlingRightsTest
### Community 44 - "Community 44"
Cohesion: 1.0
Nodes (1): BoardTest
### Community 45 - "Community 45"
Cohesion: 1.0
Nodes (1): ColorTest
### Community 46 - "Community 46"
Cohesion: 1.0
Nodes (1): MoveTest
### Community 47 - "Community 47"
Cohesion: 1.0
Nodes (1): GameContextTest
### Community 48 - "Community 48"
Cohesion: 1.0
Nodes (1): ApiResponseTest
### Community 49 - "Community 49"
Cohesion: 1.0
Nodes (1): PlayerInfoTest
### Community 50 - "Community 50"
Cohesion: 1.0
Nodes (0):
### Community 51 - "Community 51"
Cohesion: 1.0
Nodes (1): Piece
### Community 52 - "Community 52"
Cohesion: 1.0
Nodes (1): Move
### Community 53 - "Community 53"
Cohesion: 1.0
Nodes (1): RendererAndUnicodeTest
### Community 54 - "Community 54"
Cohesion: 1.0
Nodes (0):
### Community 55 - "Community 55"
Cohesion: 1.0
Nodes (1): DefaultRulesTest
### Community 56 - "Community 56"
Cohesion: 1.0
Nodes (1): PgnParserTest
### Community 57 - "Community 57"
Cohesion: 1.0
Nodes (1): PgnValidatorTest
### Community 58 - "Community 58"
Cohesion: 1.0
Nodes (1): FenParserCombinatorsTest
### Community 59 - "Community 59"
Cohesion: 1.0
Nodes (1): FenParserTest
### Community 60 - "Community 60"
Cohesion: 1.0
Nodes (1): FenParserFastParseTest
### Community 61 - "Community 61"
Cohesion: 1.0
Nodes (1): ParserTest
### Community 62 - "Community 62"
Cohesion: 1.0
Nodes (1): GameEngineOutcomesTest
### Community 63 - "Community 63"
Cohesion: 1.0
Nodes (1): GameEngineSpecialMovesTest
### Community 64 - "Community 64"
Cohesion: 1.0
Nodes (1): GameEngineScenarioTest
### Community 65 - "Community 65"
Cohesion: 1.0
Nodes (1): CommandTest
### Community 66 - "Community 66"
Cohesion: 1.0
Nodes (0):
### Community 67 - "Community 67"
Cohesion: 1.0
Nodes (0):
### Community 68 - "Community 68"
Cohesion: 1.0
Nodes (0):
### Community 69 - "Community 69"
Cohesion: 1.0
Nodes (0):
### Community 70 - "Community 70"
Cohesion: 1.0
Nodes (0):
### Community 71 - "Community 71"
Cohesion: 1.0
Nodes (1): Strip the package prefix from the full method path.
### Community 72 - "Community 72"
Cohesion: 1.0
Nodes (1): Lines that are branch points and have at least one uncovered branch statement.
### Community 73 - "Community 73"
Cohesion: 1.0
Nodes (0):
## Knowledge Gaps
- **55 isolated node(s):** `PieceTest`, `PieceTypeTest`, `SquareTest`, `CastlingRightsTest`, `BoardTest` (+50 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **Thin community `Community 40`** (2 nodes): `PieceTest.scala`, `PieceTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 41`** (2 nodes): `PieceTypeTest.scala`, `PieceTypeTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 42`** (2 nodes): `SquareTest.scala`, `SquareTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 43`** (2 nodes): `CastlingRightsTest.scala`, `CastlingRightsTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 44`** (2 nodes): `BoardTest.scala`, `BoardTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 45`** (2 nodes): `ColorTest.scala`, `ColorTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 46`** (2 nodes): `MoveTest.scala`, `MoveTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 47`** (2 nodes): `GameContextTest.scala`, `GameContextTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 48`** (2 nodes): `ApiResponseTest.scala`, `ApiResponseTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 49`** (2 nodes): `PlayerInfoTest.scala`, `PlayerInfoTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 50`** (2 nodes): `PieceType.scala`, `label()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 51`** (2 nodes): `Piece.scala`, `Piece`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 52`** (2 nodes): `Move.scala`, `Move`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 53`** (2 nodes): `RendererAndUnicodeTest.scala`, `RendererAndUnicodeTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 54`** (2 nodes): `PieceUnicode.scala`, `unicode()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 55`** (2 nodes): `DefaultRulesTest.scala`, `DefaultRulesTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 56`** (2 nodes): `PgnParserTest.scala`, `PgnParserTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 57`** (2 nodes): `PgnValidatorTest.scala`, `PgnValidatorTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 58`** (2 nodes): `FenParserCombinatorsTest.scala`, `FenParserCombinatorsTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 59`** (2 nodes): `FenParserTest.scala`, `FenParserTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 60`** (2 nodes): `FenParserFastParseTest.scala`, `FenParserFastParseTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 61`** (2 nodes): `ParserTest.scala`, `ParserTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 62`** (2 nodes): `GameEngineOutcomesTest.scala`, `GameEngineOutcomesTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 63`** (2 nodes): `GameEngineSpecialMovesTest.scala`, `GameEngineSpecialMovesTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 64`** (2 nodes): `GameEngineScenarioTest.scala`, `GameEngineScenarioTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 65`** (2 nodes): `CommandTest.scala`, `CommandTest`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 66`** (1 nodes): `build.gradle.kts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 67`** (1 nodes): `settings.gradle.kts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 68`** (1 nodes): `RuleSet.scala`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 69`** (1 nodes): `GameContextImport.scala`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 70`** (1 nodes): `GameContextExport.scala`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 71`** (1 nodes): `Strip the package prefix from the full method path.`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 72`** (1 nodes): `Lines that are branch points and have at least one uncovered branch statement.`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 73`** (1 nodes): `test_counter.py`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `FenParserFastParse` connect `Community 6` to `Community 3`?**
_High betweenness centrality (0.004) - this node is a cross-community bridge._
- **What connects `PieceTest`, `PieceTypeTest`, `SquareTest` to the rest of the system?**
_55 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Community 0` be split into smaller, more focused modules?**
_Cohesion score 0.11 - nodes in this community are weakly interconnected._
- **Should `Community 1` be split into smaller, more focused modules?**
_Cohesion score 0.09 - nodes in this community are weakly interconnected._
- **Should `Community 2` be split into smaller, more focused modules?**
_Cohesion score 0.11 - nodes in this community are weakly interconnected._
- **Should `Community 3` be split into smaller, more focused modules?**
_Cohesion score 0.09 - nodes in this community are weakly interconnected._
- **Should `Community 4` be split into smaller, more focused modules?**
_Cohesion score 0.14 - nodes in this community are weakly interconnected._
@@ -1 +0,0 @@
{"nodes": [{"id": "commandinvokertest", "label": "CommandInvokerTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L1"}, {"id": "commandinvokertest_commandinvokertest", "label": "CommandInvokerTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L8"}, {"id": "commandinvokertest_commandinvokertest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L10"}, {"id": "commandinvokertest_commandinvokertest_createmovecommand", "label": ".createMoveCommand()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L12"}], "edges": [{"source": "commandinvokertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "commandinvokertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "commandinvokertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "commandinvokertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "commandinvokertest", "target": "commandinvokertest_commandinvokertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "commandinvokertest_commandinvokertest", "target": "commandinvokertest_commandinvokertest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "commandinvokertest_commandinvokertest", "target": "commandinvokertest_commandinvokertest_createmovecommand", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L12", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/ui/build.gradle.kts", "source_location": "L1"}], "edges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "nnuebot", "label": "NNUEBot.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L1"}, {"id": "nnuebot_nnuebot", "label": "NNUEBot", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L12"}, {"id": "nnuebot_nnuebot_nextmove", "label": ".nextMove()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L23"}], "edges": [{"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L3", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L4", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L5", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L6", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L7", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L8", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L9", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L10", "weight": 1.0}, {"source": "nnuebot", "target": "nnuebot_nnuebot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L12", "weight": 1.0}, {"source": "nnuebot_nnuebot", "target": "nnuebot_nnuebot_nextmove", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L23", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "pgnexporter", "label": "PgnExporter.scala", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L1"}, {"id": "pgnexporter_pgnexporter", "label": "PgnExporter", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L9"}, {"id": "pgnexporter_pgnexporter_exportgamecontext", "label": ".exportGameContext()", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L12"}, {"id": "pgnexporter_pgnexporter_exportgame", "label": ".exportGame()", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L23"}, {"id": "pgnexporter_pgnexporter_movetoalgebraic", "label": ".moveToAlgebraic()", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L53"}], "edges": [{"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L7", "weight": 1.0}, {"source": "pgnexporter", "target": "pgnexporter_pgnexporter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L9", "weight": 1.0}, {"source": "pgnexporter_pgnexporter", "target": "pgnexporter_pgnexporter_exportgamecontext", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L12", "weight": 1.0}, {"source": "pgnexporter_pgnexporter", "target": "pgnexporter_pgnexporter_exportgame", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L23", "weight": 1.0}, {"source": "pgnexporter_pgnexporter", "target": "pgnexporter_pgnexporter_movetoalgebraic", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L53", "weight": 1.0}, {"source": "pgnexporter_pgnexporter_exportgamecontext", "target": "pgnexporter_pgnexporter_exportgame", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L20", "weight": 1.0}, {"source": "pgnexporter_pgnexporter_exportgame", "target": "pgnexporter_pgnexporter_movetoalgebraic", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L32", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "piece", "label": "Piece.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L1"}, {"id": "piece_piece", "label": "Piece", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L4"}], "edges": [{"source": "piece", "target": "piece_piece", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L4", "weight": 1.0}, {"source": "piece", "target": "piece_piece", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L6", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "commandinvoker", "label": "CommandInvoker.scala", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L1"}, {"id": "commandinvoker_commandinvoker", "label": "CommandInvoker", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L4"}, {"id": "commandinvoker_commandinvoker_execute", "label": ".execute()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L11"}, {"id": "commandinvoker_commandinvoker_undo", "label": ".undo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L24"}, {"id": "commandinvoker_commandinvoker_redo", "label": ".redo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L37"}, {"id": "commandinvoker_commandinvoker_history", "label": ".history()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L50"}, {"id": "commandinvoker_commandinvoker_getcurrentindex", "label": ".getCurrentIndex()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L55"}, {"id": "commandinvoker_commandinvoker_clear", "label": ".clear()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L60"}, {"id": "commandinvoker_commandinvoker_canundo", "label": ".canUndo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L66"}, {"id": "commandinvoker_commandinvoker_canredo", "label": ".canRedo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L71"}], "edges": [{"source": "commandinvoker", "target": "commandinvoker_commandinvoker", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L4", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_execute", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L11", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_undo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L24", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_redo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L37", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_history", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L50", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_getcurrentindex", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L55", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_clear", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L60", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_canundo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L66", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_canredo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L71", "weight": 1.0}, {"source": "commandinvoker_commandinvoker_redo", "target": "commandinvoker_commandinvoker_execute", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L40", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "squaretest", "label": "SquareTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L1"}, {"id": "squaretest_squaretest", "label": "SquareTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L6"}], "edges": [{"source": "squaretest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "squaretest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "squaretest", "target": "squaretest_squaretest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L6", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "guiobserver", "label": "GUIObserver.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L1"}, {"id": "guiobserver_guiobserver", "label": "GUIObserver", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L13"}, {"id": "guiobserver_guiobserver_ongameevent", "label": ".onGameEvent()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L15"}, {"id": "guiobserver_guiobserver_showalert", "label": ".showAlert()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L73"}], "edges": [{"source": "guiobserver", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L3", "weight": 1.0}, {"source": "guiobserver", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L4", "weight": 1.0}, {"source": "guiobserver", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L5", "weight": 1.0}, {"source": "guiobserver", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L6", "weight": 1.0}, {"source": "guiobserver", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L7", "weight": 1.0}, {"source": "guiobserver", "target": "guiobserver_guiobserver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L13", "weight": 1.0}, {"source": "guiobserver_guiobserver", "target": "guiobserver_guiobserver_ongameevent", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L15", "weight": 1.0}, {"source": "guiobserver_guiobserver", "target": "guiobserver_guiobserver_showalert", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L73", "weight": 1.0}, {"source": "guiobserver_guiobserver_ongameevent", "target": "guiobserver_guiobserver_showalert", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L31", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "gamecontextexport", "label": "GameContextExport.scala", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala", "source_location": "L1"}], "edges": [{"source": "gamecontextexport", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala", "source_location": "L3", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "apiresponsetest", "label": "ApiResponseTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L1"}, {"id": "apiresponsetest_apiresponsetest", "label": "ApiResponseTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L6"}], "edges": [{"source": "apiresponsetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "apiresponsetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "apiresponsetest", "target": "apiresponsetest_apiresponsetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L6", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "gameenginewithbottest", "label": "GameEngineWithBotTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L1"}, {"id": "gameenginewithbottest_gameenginewithbottest", "label": "GameEngineWithBotTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L14"}, {"id": "gameenginewithbottest_ongameevent", "label": "onGameEvent()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L29"}], "edges": [{"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L11", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L12", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_gameenginewithbottest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L14", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_ongameevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L29", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_ongameevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L75", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_ongameevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L99", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "botdifficultytest", "label": "BotDifficultyTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L1"}, {"id": "botdifficultytest_botdifficultytest", "label": "BotDifficultyTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L6"}], "edges": [{"source": "botdifficultytest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "botdifficultytest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "botdifficultytest", "target": "botdifficultytest_botdifficultytest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L6", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "gameengineloadgametest", "label": "GameEngineLoadGameTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L1"}, {"id": "gameengineloadgametest_gameengineloadgametest", "label": "GameEngineLoadGameTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L14"}, {"id": "gameengineloadgametest_mockobserver", "label": "MockObserver", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L40"}, {"id": "gameengineloadgametest_mockobserver_ongameevent", "label": ".onGameEvent()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L42"}], "edges": [{"source": "gameengineloadgametest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L11", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L12", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "gameengineloadgametest_gameengineloadgametest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L14", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "gameengineloadgametest_mockobserver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L40", "weight": 1.0}, {"source": "gameengineloadgametest_mockobserver", "target": "gameengineloadgametest_mockobserver_ongameevent", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L42", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "gamecontextimport", "label": "GameContextImport.scala", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala", "source_location": "L1"}], "edges": [{"source": "gamecontextimport", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala", "source_location": "L3", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "settings_gradle", "label": "settings.gradle.kts", "file_type": "code", "source_file": "settings.gradle.kts", "source_location": "L1"}], "edges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "generate", "label": "generate.py", "file_type": "code", "source_file": "modules/bot/python/src/generate.py", "source_location": "L1"}, {"id": "generate_worker_generate_games", "label": "_worker_generate_games()", "file_type": "code", "source_file": "modules/bot/python/src/generate.py", "source_location": "L13"}, {"id": "generate_play_random_game_and_collect_positions", "label": "play_random_game_and_collect_positions()", "file_type": "code", "source_file": "modules/bot/python/src/generate.py", "source_location": "L64"}, {"id": "generate_rationale_14", "label": "Generate games for one worker. Returns: list of FENs generated by t", "file_type": "rationale", "source_file": "modules/bot/python/src/generate.py", "source_location": "L14"}, {"id": "generate_rationale_72", "label": "Generate positions using multiprocessing with multiple workers. Args:", "file_type": "rationale", "source_file": "modules/bot/python/src/generate.py", "source_location": "L72"}], "edges": [{"source": "generate", "target": "chess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L4", "weight": 1.0}, {"source": "generate", "target": "random", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L5", "weight": 1.0}, {"source": "generate", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L6", "weight": 1.0}, {"source": "generate", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L7", "weight": 1.0}, {"source": "generate", "target": "tqdm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L8", "weight": 1.0}, {"source": "generate", "target": "multiprocessing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L9", "weight": 1.0}, {"source": "generate", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L10", "weight": 1.0}, {"source": "generate", "target": "time", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L11", "weight": 1.0}, {"source": "generate", "target": "generate_worker_generate_games", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L13", "weight": 1.0}, {"source": "generate", "target": "generate_play_random_game_and_collect_positions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L64", "weight": 1.0}, {"source": "generate", "target": "argparse", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L144", "weight": 1.0}, {"source": "generate_rationale_14", "target": "generate_worker_generate_games", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L14", "weight": 1.0}, {"source": "generate_rationale_72", "target": "generate_play_random_game_and_collect_positions", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L72", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "config", "label": "Config.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/Config.scala", "source_location": "L1"}, {"id": "config_config", "label": "Config", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/Config.scala", "source_location": "L3"}], "edges": [{"source": "config", "target": "config_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/Config.scala", "source_location": "L3", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "pieceunicode", "label": "PieceUnicode.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L1"}, {"id": "pieceunicode_unicode", "label": "unicode()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L6"}], "edges": [{"source": "pieceunicode", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L3", "weight": 1.0}, {"source": "pieceunicode", "target": "pieceunicode_unicode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L6", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "test_counter", "label": "test_counter.py", "file_type": "code", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1"}], "edges": [{"source": "test_counter", "target": "glob", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}, {"source": "test_counter", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "gamecontext", "label": "GameContext.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L1"}, {"id": "gamecontext_gamecontext", "label": "GameContext", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L9"}, {"id": "gamecontext_gamecontext_withboard", "label": ".withBoard()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L18"}, {"id": "gamecontext_gamecontext_withturn", "label": ".withTurn()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L21"}, {"id": "gamecontext_gamecontext_withcastlingrights", "label": ".withCastlingRights()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L24"}, {"id": "gamecontext_gamecontext_withenpassantsquare", "label": ".withEnPassantSquare()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L27"}, {"id": "gamecontext_gamecontext_withhalfmoveclock", "label": ".withHalfMoveClock()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L30"}, {"id": "gamecontext_gamecontext_withmove", "label": ".withMove()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L33"}, {"id": "gamecontext_gamecontext_initial", "label": ".initial()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L37"}], "edges": [{"source": "gamecontext", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L3", "weight": 1.0}, {"source": "gamecontext", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L4", "weight": 1.0}, {"source": "gamecontext", "target": "gamecontext_gamecontext", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L9", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withboard", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L18", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withturn", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L21", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withcastlingrights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L24", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withenpassantsquare", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L27", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withhalfmoveclock", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L30", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withmove", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L33", "weight": 1.0}, {"source": "gamecontext", "target": "gamecontext_gamecontext", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L35", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_initial", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L37", "weight": 1.0}, {"source": "gamecontext_gamecontext_initial", "target": "gamecontext_gamecontext", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L37", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "chessgui", "label": "ChessGUI.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L1"}, {"id": "chessgui_chessguiapp", "label": "ChessGUIApp", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L14"}, {"id": "chessgui_chessguiapp_start", "label": ".start()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L16"}, {"id": "chessgui_chessguilauncher", "label": "ChessGUILauncher", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L51"}, {"id": "chessgui_chessguilauncher_getengine", "label": ".getEngine()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L54"}, {"id": "chessgui_chessguilauncher_launch", "label": ".launch()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L56"}], "edges": [{"source": "chessgui", "target": "javafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L3", "weight": 1.0}, {"source": "chessgui", "target": "javafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L4", "weight": 1.0}, {"source": "chessgui", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L5", "weight": 1.0}, {"source": "chessgui", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L6", "weight": 1.0}, {"source": "chessgui", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L7", "weight": 1.0}, {"source": "chessgui", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L8", "weight": 1.0}, {"source": "chessgui", "target": "chessgui_chessguiapp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L14", "weight": 1.0}, {"source": "chessgui_chessguiapp", "target": "chessgui_chessguiapp_start", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L16", "weight": 1.0}, {"source": "chessgui", "target": "chessgui_chessguilauncher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L51", "weight": 1.0}, {"source": "chessgui_chessguilauncher", "target": "chessgui_chessguilauncher_getengine", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L54", "weight": 1.0}, {"source": "chessgui_chessguilauncher", "target": "chessgui_chessguilauncher_launch", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L56", "weight": 1.0}, {"source": "chessgui_chessguilauncher_launch", "target": "chessgui_chessguiapp_start", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L63", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "nnue", "label": "NNUE.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L1"}, {"id": "nnue_nnue", "label": "NNUE", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L8"}, {"id": "nnue_nnue_loadweights", "label": ".loadWeights()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L12"}, {"id": "nnue_nnue_readtensor", "label": ".readTensor()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L46"}, {"id": "nnue_nnue_positiontofeatures", "label": ".positionToFeatures()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L72"}, {"id": "nnue_nnue_evaluate", "label": ".evaluate()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L98"}, {"id": "nnue_nnue_benchmark", "label": ".benchmark()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L148"}], "edges": [{"source": "nnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L3", "weight": 1.0}, {"source": "nnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L4", "weight": 1.0}, {"source": "nnue", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L5", "weight": 1.0}, {"source": "nnue", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L6", "weight": 1.0}, {"source": "nnue", "target": "nnue_nnue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L8", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_loadweights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L12", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_readtensor", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L46", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_positiontofeatures", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L72", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_evaluate", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L98", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_benchmark", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L148", "weight": 1.0}, {"source": "nnue_nnue_loadweights", "target": "nnue_nnue_readtensor", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L32", "weight": 1.0}, {"source": "nnue_nnue_evaluate", "target": "nnue_nnue_positiontofeatures", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L99", "weight": 1.0}, {"source": "nnue_nnue_benchmark", "target": "nnue_nnue_evaluate", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L154", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "pgnexportertest", "label": "PgnExporterTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L1"}, {"id": "pgnexportertest_pgnexportertest", "label": "PgnExporterTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L9"}, {"id": "pgnexportertest_pgnexportertest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L66"}], "edges": [{"source": "pgnexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "pgnexportertest", "target": "pgnexportertest_pgnexportertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "pgnexportertest_pgnexportertest", "target": "pgnexportertest_pgnexportertest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L66", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "test_counter", "label": "test_counter.py", "file_type": "code", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1"}], "edges": [{"source": "test_counter", "target": "glob", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}, {"source": "test_counter", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "gameenginespecialmovestest", "label": "GameEngineSpecialMovesTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L1"}, {"id": "gameenginespecialmovestest_gameenginespecialmovestest", "label": "GameEngineSpecialMovesTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L9"}], "edges": [{"source": "gameenginespecialmovestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "gameenginespecialmovestest_gameenginespecialmovestest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L9", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/core/build.gradle.kts", "source_location": "L1"}], "edges": []}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/core/build.gradle.kts", "source_location": "L1"}], "edges": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "label", "label": "label.py", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L1"}, {"id": "label_normalize_evaluation", "label": "normalize_evaluation()", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L14"}, {"id": "label_evaluate_fen_batch", "label": "_evaluate_fen_batch()", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L32"}, {"id": "label_label_positions_with_stockfish", "label": "label_positions_with_stockfish()", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L82"}, {"id": "label_rationale_15", "label": "Normalize centipawn evaluation to a bounded range. Args: cp_value:", "file_type": "rationale", "source_file": "modules/bot/python/src/label.py", "source_location": "L15"}, {"id": "label_rationale_33", "label": "Worker function to evaluate a batch of FENs with Stockfish threading. Args:", "file_type": "rationale", "source_file": "modules/bot/python/src/label.py", "source_location": "L33"}, {"id": "label_rationale_83", "label": "Read positions and label them with Stockfish evaluations. Args: pos", "file_type": "rationale", "source_file": "modules/bot/python/src/label.py", "source_location": "L83"}], "edges": [{"source": "label", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L4", "weight": 1.0}, {"source": "label", "target": "chess_engine", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L5", "weight": 1.0}, {"source": "label", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L6", "weight": 1.0}, {"source": "label", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L7", "weight": 1.0}, {"source": "label", "target": "numpy", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L8", "weight": 1.0}, {"source": "label", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L9", "weight": 1.0}, {"source": "label", "target": "tqdm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L10", "weight": 1.0}, {"source": "label", "target": "multiprocessing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L11", "weight": 1.0}, {"source": "label", "target": "functools", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L12", "weight": 1.0}, {"source": "label", "target": "label_normalize_evaluation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L14", "weight": 1.0}, {"source": "label", "target": "label_evaluate_fen_batch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L32", "weight": 1.0}, {"source": "label", "target": "label_label_positions_with_stockfish", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L82", "weight": 1.0}, {"source": "label", "target": "argparse", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L279", "weight": 1.0}, {"source": "label_evaluate_fen_batch", "target": "label_normalize_evaluation", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L70", "weight": 1.0}, {"source": "label_rationale_15", "target": "label_normalize_evaluation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L15", "weight": 1.0}, {"source": "label_rationale_33", "target": "label_evaluate_fen_batch", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L33", "weight": 1.0}, {"source": "label_rationale_83", "target": "label_label_positions_with_stockfish", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L83", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "movecommandtest", "label": "MoveCommandTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L1"}, {"id": "movecommandtest_movecommandtest", "label": "MoveCommandTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L8"}, {"id": "movecommandtest_movecommandtest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L10"}], "edges": [{"source": "movecommandtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "movecommandtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "movecommandtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "movecommandtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "movecommandtest", "target": "movecommandtest_movecommandtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "movecommandtest_movecommandtest", "target": "movecommandtest_movecommandtest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L10", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "polyglothashtest", "label": "PolyglotHashTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L1"}, {"id": "polyglothashtest_polyglothashtest", "label": "PolyglotHashTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L10"}], "edges": [{"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "polyglothashtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "polyglothashtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "polyglothashtest", "target": "polyglothashtest_polyglothashtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L10", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "piecetest", "label": "PieceTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L1"}, {"id": "piecetest_piecetest", "label": "PieceTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L6"}], "edges": [{"source": "piecetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "piecetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "piecetest", "target": "piecetest_piecetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L6", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "main", "label": "Main.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L1"}, {"id": "main_main", "label": "Main", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L14"}, {"id": "main_main_main", "label": ".main()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L15"}], "edges": [{"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L3", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L4", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L5", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L6", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L7", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L8", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L9", "weight": 1.0}, {"source": "main", "target": "main_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L14", "weight": 1.0}, {"source": "main_main", "target": "main_main_main", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L15", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "ruleset", "label": "RuleSet.scala", "file_type": "code", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L1"}], "edges": [{"source": "ruleset", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L3", "weight": 1.0}, {"source": "ruleset", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L4", "weight": 1.0}, {"source": "ruleset", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L5", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "gameenginescenariotest", "label": "GameEngineScenarioTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L1"}, {"id": "gameenginescenariotest_gameenginescenariotest", "label": "GameEngineScenarioTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L11"}], "edges": [{"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "gameenginescenariotest_gameenginescenariotest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L11", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "pgnvalidatortest", "label": "PgnValidatorTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L1"}, {"id": "pgnvalidatortest_pgnvalidatortest", "label": "PgnValidatorTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L8"}], "edges": [{"source": "pgnvalidatortest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "pgnvalidatortest_pgnvalidatortest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L8", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "fenexportertest", "label": "FenExporterTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L1"}, {"id": "fenexportertest_fenexportertest", "label": "FenExporterTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L9"}, {"id": "fenexportertest_fenexportertest_context", "label": ".context()", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L11"}], "edges": [{"source": "fenexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "fenexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "fenexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "fenexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "fenexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "fenexportertest", "target": "fenexportertest_fenexportertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "fenexportertest_fenexportertest", "target": "fenexportertest_fenexportertest_context", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L11", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "weights", "label": "Weights.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/ai/Weights.scala", "source_location": "L1"}], "edges": [{"source": "weights", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/ai/Weights.scala", "source_location": "L3", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "board", "label": "Board.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L1"}, {"id": "board_board", "label": "Board", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L5"}, {"id": "board_board_apply", "label": ".apply()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L7"}, {"id": "board_pieceat", "label": "pieceAt()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L10"}, {"id": "board_updated", "label": "updated()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L11"}, {"id": "board_removed", "label": "removed()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L12"}, {"id": "board_withmove", "label": "withMove()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L13"}, {"id": "board_applymove", "label": "applyMove()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L17"}, {"id": "board_pieces", "label": "pieces()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L20"}], "edges": [{"source": "board", "target": "board_board", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L5", "weight": 1.0}, {"source": "board_board", "target": "board_board_apply", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L7", "weight": 1.0}, {"source": "board", "target": "board_pieceat", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L10", "weight": 1.0}, {"source": "board", "target": "board_updated", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L11", "weight": 1.0}, {"source": "board", "target": "board_removed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L12", "weight": 1.0}, {"source": "board", "target": "board_withmove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L13", "weight": 1.0}, {"source": "board", "target": "board_applymove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L17", "weight": 1.0}, {"source": "board", "target": "board_pieces", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L20", "weight": 1.0}, {"source": "board_withmove", "target": "board_updated", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L15", "weight": 1.0}, {"source": "board_withmove", "target": "board_removed", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L15", "weight": 1.0}, {"source": "board_applymove", "target": "board_withmove", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L18", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "fenparsertest", "label": "FenParserTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L1"}, {"id": "fenparsertest_fenparsertest", "label": "FenParserTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L7"}], "edges": [{"source": "fenparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "fenparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "fenparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "fenparsertest", "target": "fenparsertest_fenparsertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L7", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "rendererandunicodetest", "label": "RendererAndUnicodeTest.scala", "file_type": "code", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L1"}, {"id": "rendererandunicodetest_rendererandunicodetest", "label": "RendererAndUnicodeTest", "file_type": "code", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L7"}], "edges": [{"source": "rendererandunicodetest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "rendererandunicodetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "rendererandunicodetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "rendererandunicodetest", "target": "rendererandunicodetest_rendererandunicodetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L7", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "polyglotbooktest", "label": "PolyglotBookTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L1"}, {"id": "polyglotbooktest_polyglotbooktest", "label": "PolyglotBookTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L16"}], "edges": [{"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "polyglotbooktest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "polyglotbooktest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "polyglotbooktest", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L12", "weight": 1.0}, {"source": "polyglotbooktest", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L13", "weight": 1.0}, {"source": "polyglotbooktest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L14", "weight": 1.0}, {"source": "polyglotbooktest", "target": "polyglotbooktest_polyglotbooktest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L16", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "gameenginenotationtest", "label": "GameEngineNotationTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L1"}, {"id": "gameenginenotationtest_gameenginenotationtest", "label": "GameEngineNotationTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L17"}, {"id": "gameenginenotationtest_gameenginenotationtest_captureevents", "label": ".captureEvents()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L19"}], "edges": [{"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "gameenginenotationtest_gameenginenotationtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L17", "weight": 1.0}, {"source": "gameenginenotationtest_gameenginenotationtest", "target": "gameenginenotationtest_gameenginenotationtest_captureevents", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L19", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "apiresponse", "label": "ApiResponse.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L1"}, {"id": "apiresponse_apiresponse", "label": "ApiResponse", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L13"}, {"id": "apiresponse_success", "label": "Success", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L15"}, {"id": "apiresponse_failure", "label": "Failure", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L18"}, {"id": "apiresponse_apiresponse_error", "label": ".error()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L21"}, {"id": "apiresponse_apierror", "label": "ApiError", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L30"}, {"id": "apiresponse_pagination", "label": "Pagination", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L43"}, {"id": "apiresponse_pagination_totalpages", "label": ".totalPages()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L48"}, {"id": "apiresponse_pagedresponse", "label": "PagedResponse", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L59"}], "edges": [{"source": "apiresponse", "target": "apiresponse_apiresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L13", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_success", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L15", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_failure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L18", "weight": 1.0}, {"source": "apiresponse_apiresponse", "target": "apiresponse_apiresponse_error", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L21", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_apierror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L30", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_pagination", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L43", "weight": 1.0}, {"source": "apiresponse_pagination", "target": "apiresponse_pagination_totalpages", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L48", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_pagedresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L59", "weight": 1.0}, {"source": "apiresponse_apiresponse_error", "target": "apiresponse_failure", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L21", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "renderer", "label": "Renderer.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L1"}, {"id": "renderer_renderer", "label": "Renderer", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L5"}, {"id": "renderer_renderer_render", "label": ".render()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L13"}], "edges": [{"source": "renderer", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L3", "weight": 1.0}, {"source": "renderer", "target": "renderer_renderer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L5", "weight": 1.0}, {"source": "renderer_renderer", "target": "renderer_renderer_render", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L13", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "piecetypetest", "label": "PieceTypeTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L1"}, {"id": "piecetypetest_piecetypetest", "label": "PieceTypeTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L6"}], "edges": [{"source": "piecetypetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "piecetypetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "piecetypetest", "target": "piecetypetest_piecetypetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L6", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "parser", "label": "Parser.scala", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L1"}, {"id": "parser_parser", "label": "Parser", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L5"}, {"id": "parser_parser_parsemove", "label": ".parseMove()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L10"}, {"id": "parser_parser_parsesquare", "label": ".parseSquare()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L18"}], "edges": [{"source": "parser", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L3", "weight": 1.0}, {"source": "parser", "target": "parser_parser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L5", "weight": 1.0}, {"source": "parser_parser", "target": "parser_parser_parsemove", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L10", "weight": 1.0}, {"source": "parser_parser", "target": "parser_parser_parsesquare", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L18", "weight": 1.0}, {"source": "parser_parser_parsemove", "target": "parser_parser_parsesquare", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L14", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "castlingrightstest", "label": "CastlingRightsTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L1"}, {"id": "castlingrightstest_castlingrightstest", "label": "CastlingRightsTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L6"}], "edges": [{"source": "castlingrightstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "castlingrightstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "castlingrightstest", "target": "castlingrightstest_castlingrightstest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L6", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "defaultrulesstatetransitionstest", "label": "DefaultRulesStateTransitionsTest.scala", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L1"}, {"id": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "label": "DefaultRulesStateTransitionsTest", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L11"}, {"id": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_contextfromfen", "label": ".contextFromFen()", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L13"}, {"id": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L16"}], "edges": [{"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L11", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "target": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_contextfromfen", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L13", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "target": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L16", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "pgnparsertest", "label": "PgnParserTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L1"}, {"id": "pgnparsertest_pgnparsertest", "label": "PgnParserTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L10"}], "edges": [{"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "pgnparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "pgnparsertest", "target": "pgnparsertest_pgnparsertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L10", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "defaultrulestest", "label": "DefaultRulesTest.scala", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L1"}, {"id": "defaultrulestest_defaultrulestest", "label": "DefaultRulesTest", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L11"}], "edges": [{"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "defaultrulestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "defaultrulestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "defaultrulestest", "target": "defaultrulestest_defaultrulestest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L11", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "polyglothash", "label": "PolyglotHash.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L1"}, {"id": "polyglothash_polyglothash", "label": "PolyglotHash", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L6"}, {"id": "polyglothash_polyglothash_hash", "label": ".hash()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L208"}, {"id": "polyglothash_polyglothash_pieceindex", "label": ".pieceIndex()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L238"}, {"id": "polyglothash_polyglothash_squareindex", "label": ".squareIndex()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L249"}, {"id": "polyglothash_polyglothash_cancaptureenpassant", "label": ".canCaptureEnPassant()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L252"}], "edges": [{"source": "polyglothash", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L3", "weight": 1.0}, {"source": "polyglothash", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L4", "weight": 1.0}, {"source": "polyglothash", "target": "polyglothash_polyglothash", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L6", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_hash", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L208", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_pieceindex", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L238", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_squareindex", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L249", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_cancaptureenpassant", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L252", "weight": 1.0}, {"source": "polyglothash_polyglothash_hash", "target": "polyglothash_polyglothash_pieceindex", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L213", "weight": 1.0}, {"source": "polyglothash_polyglothash_hash", "target": "polyglothash_polyglothash_squareindex", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L213", "weight": 1.0}, {"source": "polyglothash_polyglothash_hash", "target": "polyglothash_polyglothash_cancaptureenpassant", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L228", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "colortest", "label": "ColorTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L1"}, {"id": "colortest_colortest", "label": "ColorTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L6"}], "edges": [{"source": "colortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "colortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "colortest", "target": "colortest_colortest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L6", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "transpositiontable", "label": "TranspositionTable.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L1"}, {"id": "transpositiontable_ttentry", "label": "TTEntry", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L10"}, {"id": "transpositiontable_transpositiontable", "label": "TranspositionTable", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L18"}, {"id": "transpositiontable_transpositiontable_probe", "label": ".probe()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L24"}, {"id": "transpositiontable_transpositiontable_store", "label": ".store()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L30"}, {"id": "transpositiontable_transpositiontable_clear", "label": ".clear()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L36"}], "edges": [{"source": "transpositiontable", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L3", "weight": 1.0}, {"source": "transpositiontable", "target": "transpositiontable_ttentry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L10", "weight": 1.0}, {"source": "transpositiontable", "target": "transpositiontable_transpositiontable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L18", "weight": 1.0}, {"source": "transpositiontable_transpositiontable", "target": "transpositiontable_transpositiontable_probe", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L24", "weight": 1.0}, {"source": "transpositiontable_transpositiontable", "target": "transpositiontable_transpositiontable_store", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L30", "weight": 1.0}, {"source": "transpositiontable_transpositiontable", "target": "transpositiontable_transpositiontable_clear", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L36", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "moveorderingtest", "label": "MoveOrderingTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L1"}, {"id": "moveorderingtest_moveorderingtest", "label": "MoveOrderingTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L10"}], "edges": [{"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "moveorderingtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "moveorderingtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "moveorderingtest", "target": "moveorderingtest_moveorderingtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L10", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "start", "label": "start.ps1", "file_type": "code", "source_file": "modules/bot/python/start.ps1", "source_location": "L1"}], "edges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/api/build.gradle.kts", "source_location": "L1"}], "edges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "castlingrights", "label": "CastlingRights.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L1"}, {"id": "castlingrights_castlingrights", "label": "CastlingRights", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L12"}, {"id": "castlingrights_castlingrights_hasanyrights", "label": ".hasAnyRights()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L21"}, {"id": "castlingrights_castlingrights_hasrights", "label": ".hasRights()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L27"}, {"id": "castlingrights_castlingrights_revokecolor", "label": ".revokeColor()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L34"}, {"id": "castlingrights_castlingrights_revokekingside", "label": ".revokeKingSide()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L41"}, {"id": "castlingrights_castlingrights_revokequeenside", "label": ".revokeQueenSide()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L48"}], "edges": [{"source": "castlingrights", "target": "castlingrights_castlingrights", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L12", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_hasanyrights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L21", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_hasrights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L27", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_revokecolor", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L34", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_revokekingside", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L41", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_revokequeenside", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L48", "weight": 1.0}, {"source": "castlingrights", "target": "castlingrights_castlingrights", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L52", "weight": 1.0}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "evaluationnnue", "label": "EvaluationNNUE.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L1"}, {"id": "evaluationnnue_evaluationnnue", "label": "EvaluationNNUE", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L6"}, {"id": "evaluationnnue_evaluationnnue_evaluate", "label": ".evaluate()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L15"}], "edges": [{"source": "evaluationnnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L3", "weight": 1.0}, {"source": "evaluationnnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L4", "weight": 1.0}, {"source": "evaluationnnue", "target": "evaluationnnue_evaluationnnue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L6", "weight": 1.0}, {"source": "evaluationnnue_evaluationnnue", "target": "evaluationnnue_evaluationnnue_evaluate", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L15", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/rule/build.gradle.kts", "source_location": "L1"}], "edges": []}

Some files were not shown because too many files have changed in this diff Show More