mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-28 16:25:00 +00:00
Added a new test case to ensure the RepoMap class can handle and include files from all supported languages.
This commit is contained in:
parent
89965bf316
commit
9db28c0052
1 changed files with 42 additions and 0 deletions
|
@ -213,5 +213,47 @@ export function myFunction(input: number): number {
|
||||||
del repo_map
|
del repo_map
|
||||||
|
|
||||||
|
|
||||||
|
class TestRepoMapAllLanguages(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.GPT35 = Model("gpt-3.5-turbo")
|
||||||
|
|
||||||
|
def test_get_repo_map_all_languages(self):
|
||||||
|
language_files = {
|
||||||
|
"c": ("test.c", "#include <stdio.h>\n\nint main() {\n printf(\"Hello, World!\\n\");\n return 0;\n}\n"),
|
||||||
|
"csharp": ("test.cs", "using System;\n\nclass Program {\n static void Main() {\n Console.WriteLine(\"Hello, World!\");\n }\n}\n"),
|
||||||
|
"cpp": ("test.cpp", "#include <iostream>\n\nint main() {\n std::cout << \"Hello, World!\" << std::endl;\n return 0;\n}\n"),
|
||||||
|
"elisp": ("test.el", "(defun greet (name)\n (message \"Hello, %s!\" name))\n"),
|
||||||
|
"elixir": ("test.ex", "defmodule Greeter do\n def hello(name) do\n IO.puts(\"Hello, #{name}!\")\n end\nend\n"),
|
||||||
|
"elm": ("test.elm", "module Main exposing (main)\n\nimport Html exposing (text)\n\nmain =\n text \"Hello, World!\"\n"),
|
||||||
|
"go": ("test.go", "package main\n\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Hello, World!\")\n}\n"),
|
||||||
|
"java": ("Test.java", "public class Test {\n public static void main(String[] args) {\n System.out.println(\"Hello, World!\");\n }\n}\n"),
|
||||||
|
"javascript": ("test.js", "function greet(name) {\n console.log(`Hello, ${name}!`);\n}\n"),
|
||||||
|
"ocaml": ("test.ml", "let greet name =\n Printf.printf \"Hello, %s!\\n\" name\n"),
|
||||||
|
"php": ("test.php", "<?php\nfunction greet($name) {\n echo \"Hello, $name!\";\n}\n?>\n"),
|
||||||
|
"python": ("test.py", "def greet(name):\n print(f\"Hello, {name}!\")\n"),
|
||||||
|
"ql": ("test.ql", "predicate greet(string name) {\n name = \"World\"\n}\n"),
|
||||||
|
"ruby": ("test.rb", "def greet(name)\n puts \"Hello, #{name}!\"\nend\n"),
|
||||||
|
"rust": ("test.rs", "fn main() {\n println!(\"Hello, World!\");\n}\n"),
|
||||||
|
"typescript": ("test.ts", "function greet(name: string): void {\n console.log(`Hello, ${name}!`);\n}\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
with IgnorantTemporaryDirectory() as temp_dir:
|
||||||
|
for _, (filename, content) in language_files.items():
|
||||||
|
with open(os.path.join(temp_dir, filename), "w") as f:
|
||||||
|
f.write(content)
|
||||||
|
|
||||||
|
io = InputOutput()
|
||||||
|
repo_map = RepoMap(main_model=self.GPT35, root=temp_dir, io=io)
|
||||||
|
other_files = [os.path.join(temp_dir, filename) for filename, _ in language_files.values()]
|
||||||
|
result = repo_map.get_repo_map([], other_files)
|
||||||
|
|
||||||
|
# Check if the result contains all the expected files
|
||||||
|
for lang, (filename, _) in language_files.items():
|
||||||
|
self.assertIn(filename, result, f"File for language {lang} not found in repo map")
|
||||||
|
|
||||||
|
# close the open cache files, so Windows won't error
|
||||||
|
del repo_map
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue