mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-29 16:54:59 +00:00
refactor: move language examples to fixture files
This commit is contained in:
parent
565f08a8e9
commit
4de8c25a3f
5 changed files with 148 additions and 144 deletions
|
@ -598,162 +598,22 @@ export { UserGreeting, useCounter, DEFAULT_NAME, MAX_AGE };
|
||||||
),
|
),
|
||||||
"csharp": (
|
"csharp": (
|
||||||
"test.cs",
|
"test.cs",
|
||||||
"""using System;
|
"", # Now reads from fixture file
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Greetings {
|
|
||||||
public interface IGreeter {
|
|
||||||
string Greet(string name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Person {
|
|
||||||
public string Name { get; set; }
|
|
||||||
public int Age { get; set; }
|
|
||||||
|
|
||||||
public Person(string name, int age) {
|
|
||||||
Name = name;
|
|
||||||
Age = age;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class FormalGreeter : IGreeter {
|
|
||||||
private const string PREFIX = "Good day";
|
|
||||||
private static readonly int MAX_AGE = 150;
|
|
||||||
|
|
||||||
public string Greet(string name) {
|
|
||||||
return $"{PREFIX}, {name}!";
|
|
||||||
}
|
|
||||||
|
|
||||||
public string GreetPerson(Person person) {
|
|
||||||
return $"{PREFIX}, {person.Name} ({person.Age})!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Program {
|
|
||||||
static void Main() {
|
|
||||||
var greeter = new FormalGreeter();
|
|
||||||
var person = new Person("World", 42);
|
|
||||||
Console.WriteLine(greeter.GreetPerson(person));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}""",
|
|
||||||
"IGreeter", # Key symbol to check
|
"IGreeter", # Key symbol to check
|
||||||
),
|
),
|
||||||
"elisp": (
|
"elisp": (
|
||||||
"test.el",
|
"test.el",
|
||||||
"""(defvar *default-greeting* "Hello")
|
"", # Now reads from fixture file
|
||||||
(defvar *max-name-length* 50)
|
|
||||||
|
|
||||||
(defstruct person
|
|
||||||
(name "Anonymous")
|
|
||||||
(age 0))
|
|
||||||
|
|
||||||
(defclass greeter ()
|
|
||||||
((prefix :initarg :prefix
|
|
||||||
:accessor greeter-prefix
|
|
||||||
:initform *default-greeting*)))
|
|
||||||
|
|
||||||
(defmethod greet ((g greeter) (p person))
|
|
||||||
(format nil "~A, ~A! You are ~D years old."
|
|
||||||
(greeter-prefix g)
|
|
||||||
(person-name p)
|
|
||||||
(person-age p)))
|
|
||||||
|
|
||||||
(defun create-formal-greeter ()
|
|
||||||
(make-instance 'greeter :prefix "Good day"))
|
|
||||||
|
|
||||||
(defun main ()
|
|
||||||
(let ((greeter (create-formal-greeter))
|
|
||||||
(person (make-person :name "World" :age 42)))
|
|
||||||
(message "%s" (greet greeter person))))""",
|
|
||||||
"greeter", # Key symbol to check
|
"greeter", # Key symbol to check
|
||||||
),
|
),
|
||||||
"elm": (
|
"elm": (
|
||||||
"test.elm",
|
"test.elm",
|
||||||
"""module Main exposing (main, Person, Greeting)
|
"", # Now reads from fixture file
|
||||||
|
|
||||||
import Html exposing (Html, div, text)
|
|
||||||
import Html.Attributes exposing (class)
|
|
||||||
|
|
||||||
type alias Person =
|
|
||||||
{ name : String
|
|
||||||
, age : Int
|
|
||||||
}
|
|
||||||
|
|
||||||
type Greeting
|
|
||||||
= Formal
|
|
||||||
| Casual
|
|
||||||
|
|
||||||
greet : Greeting -> Person -> String
|
|
||||||
greet style person =
|
|
||||||
let
|
|
||||||
prefix =
|
|
||||||
case style of
|
|
||||||
Formal ->
|
|
||||||
"Good day"
|
|
||||||
|
|
||||||
Casual ->
|
|
||||||
"Hi"
|
|
||||||
in
|
|
||||||
prefix ++ ", " ++ person.name ++ "!"
|
|
||||||
|
|
||||||
defaultPerson : Person
|
|
||||||
defaultPerson =
|
|
||||||
{ name = "World"
|
|
||||||
, age = 42
|
|
||||||
}
|
|
||||||
|
|
||||||
main : Html msg
|
|
||||||
main =
|
|
||||||
div [ class "greeting" ]
|
|
||||||
[ text (greet Formal defaultPerson)
|
|
||||||
]""",
|
|
||||||
"Person", # Key symbol to check
|
"Person", # Key symbol to check
|
||||||
),
|
),
|
||||||
"go": (
|
"go": (
|
||||||
"test.go",
|
"test.go",
|
||||||
"""package main
|
"", # Now reads from fixture file
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Person represents someone who can be greeted
|
|
||||||
type Person struct {
|
|
||||||
Name string
|
|
||||||
Age int
|
|
||||||
}
|
|
||||||
|
|
||||||
// Greeter defines greeting behavior
|
|
||||||
type Greeter interface {
|
|
||||||
Greet(p Person) string
|
|
||||||
}
|
|
||||||
|
|
||||||
// FormalGreeter implements Greeter with formal style
|
|
||||||
type FormalGreeter struct {
|
|
||||||
Prefix string
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
DefaultName = "World"
|
|
||||||
MaxAge = 150
|
|
||||||
)
|
|
||||||
|
|
||||||
func (g FormalGreeter) Greet(p Person) string {
|
|
||||||
return fmt.Sprintf("%s, %s! You are %d years old.",
|
|
||||||
g.Prefix, p.Name, p.Age)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewFormalGreeter() *FormalGreeter {
|
|
||||||
return &FormalGreeter{Prefix: "Good day"}
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
greeter := NewFormalGreeter()
|
|
||||||
person := Person{Name: DefaultName, Age: 42}
|
|
||||||
fmt.Println(greeter.Greet(person))
|
|
||||||
}""",
|
|
||||||
"Greeter", # Key symbol to check
|
"Greeter", # Key symbol to check
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
39
tests/fixtures/languages/csharp/test.cs
vendored
Normal file
39
tests/fixtures/languages/csharp/test.cs
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Greetings {
|
||||||
|
public interface IGreeter {
|
||||||
|
string Greet(string name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Person {
|
||||||
|
public string Name { get; set; }
|
||||||
|
public int Age { get; set; }
|
||||||
|
|
||||||
|
public Person(string name, int age) {
|
||||||
|
Name = name;
|
||||||
|
Age = age;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FormalGreeter : IGreeter {
|
||||||
|
private const string PREFIX = "Good day";
|
||||||
|
private static readonly int MAX_AGE = 150;
|
||||||
|
|
||||||
|
public string Greet(string name) {
|
||||||
|
return $"{PREFIX}, {name}!";
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GreetPerson(Person person) {
|
||||||
|
return $"{PREFIX}, {person.Name} ({person.Age})!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Program {
|
||||||
|
static void Main() {
|
||||||
|
var greeter = new FormalGreeter();
|
||||||
|
var person = new Person("World", 42);
|
||||||
|
Console.WriteLine(greeter.GreetPerson(person));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
25
tests/fixtures/languages/elisp/test.el
vendored
Normal file
25
tests/fixtures/languages/elisp/test.el
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
(defvar *default-greeting* "Hello")
|
||||||
|
(defvar *max-name-length* 50)
|
||||||
|
|
||||||
|
(defstruct person
|
||||||
|
(name "Anonymous")
|
||||||
|
(age 0))
|
||||||
|
|
||||||
|
(defclass greeter ()
|
||||||
|
((prefix :initarg :prefix
|
||||||
|
:accessor greeter-prefix
|
||||||
|
:initform *default-greeting*)))
|
||||||
|
|
||||||
|
(defmethod greet ((g greeter) (p person))
|
||||||
|
(format nil "~A, ~A! You are ~D years old."
|
||||||
|
(greeter-prefix g)
|
||||||
|
(person-name p)
|
||||||
|
(person-age p)))
|
||||||
|
|
||||||
|
(defun create-formal-greeter ()
|
||||||
|
(make-instance 'greeter :prefix "Good day"))
|
||||||
|
|
||||||
|
(defun main ()
|
||||||
|
(let ((greeter (create-formal-greeter))
|
||||||
|
(person (make-person :name "World" :age 42)))
|
||||||
|
(message "%s" (greet greeter person))))
|
38
tests/fixtures/languages/elm/test.elm
vendored
Normal file
38
tests/fixtures/languages/elm/test.elm
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
module Main exposing (main, Person, Greeting)
|
||||||
|
|
||||||
|
import Html exposing (Html, div, text)
|
||||||
|
import Html.Attributes exposing (class)
|
||||||
|
|
||||||
|
type alias Person =
|
||||||
|
{ name : String
|
||||||
|
, age : Int
|
||||||
|
}
|
||||||
|
|
||||||
|
type Greeting
|
||||||
|
= Formal
|
||||||
|
| Casual
|
||||||
|
|
||||||
|
greet : Greeting -> Person -> String
|
||||||
|
greet style person =
|
||||||
|
let
|
||||||
|
prefix =
|
||||||
|
case style of
|
||||||
|
Formal ->
|
||||||
|
"Good day"
|
||||||
|
|
||||||
|
Casual ->
|
||||||
|
"Hi"
|
||||||
|
in
|
||||||
|
prefix ++ ", " ++ person.name ++ "!"
|
||||||
|
|
||||||
|
defaultPerson : Person
|
||||||
|
defaultPerson =
|
||||||
|
{ name = "World"
|
||||||
|
, age = 42
|
||||||
|
}
|
||||||
|
|
||||||
|
main : Html msg
|
||||||
|
main =
|
||||||
|
div [ class "greeting" ]
|
||||||
|
[ text (greet Formal defaultPerson)
|
||||||
|
]
|
42
tests/fixtures/languages/go/test.go
vendored
Normal file
42
tests/fixtures/languages/go/test.go
vendored
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Person represents someone who can be greeted
|
||||||
|
type Person struct {
|
||||||
|
Name string
|
||||||
|
Age int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Greeter defines greeting behavior
|
||||||
|
type Greeter interface {
|
||||||
|
Greet(p Person) string
|
||||||
|
}
|
||||||
|
|
||||||
|
// FormalGreeter implements Greeter with formal style
|
||||||
|
type FormalGreeter struct {
|
||||||
|
Prefix string
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
DefaultName = "World"
|
||||||
|
MaxAge = 150
|
||||||
|
)
|
||||||
|
|
||||||
|
func (g FormalGreeter) Greet(p Person) string {
|
||||||
|
return fmt.Sprintf("%s, %s! You are %d years old.",
|
||||||
|
g.Prefix, p.Name, p.Age)
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFormalGreeter() *FormalGreeter {
|
||||||
|
return &FormalGreeter{Prefix: "Good day"}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
greeter := NewFormalGreeter()
|
||||||
|
person := Person{Name: DefaultName, Age: 42}
|
||||||
|
fmt.Println(greeter.Greet(person))
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue