Skip to content

Commit 23b9c28

Browse files
authored
Merge pull request #313 from dodona-edu/language/C#
Add support for C# (pending Docker changes and deploy of said Docker images)
2 parents 9a294e9 + cb7d60f commit 23b9c28

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1507
-73
lines changed

dependencies.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ below are the ones we currently use to run the test suite.
2323
| Java | 17 |
2424
| NodeJS (Javascript) | 16 |
2525
| Kotlin | 1.6 |
26+
| C# (.NET 6) | 10.0 |
2627

2728
## Core
2829

@@ -95,3 +96,7 @@ $ npm install eslint@8.7 abstract-syntax-tree@2.16
9596
|------------------------|----------|--------------|
9697
| `klint` | 0.43 | OS package |
9798

99+
100+
## C#
101+
102+
C# does not have other dependencies besides .NET 6.

exercise/counter/solution/solution.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
public class Counter {
2+
private int counter;
3+
4+
public Counter() {
5+
counter = 0;
6+
}
7+
8+
public Counter Add() {
9+
counter++;
10+
return this;
11+
}
12+
13+
public int Get() {
14+
return counter;
15+
}
16+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
using Tested;
3+
4+
public class Evaluator {
5+
public static EvaluationResult Evaluate(object? actual) {
6+
if (actual is DivideByZeroException) {
7+
return new EvaluationResult(true, actual.ToString(), actual.ToString());
8+
} else {
9+
var messages = new List<Message>() { new Message("Expected DivideByZeroException, got something else.") };
10+
return new EvaluationResult(false, "System.DivideByZeroException", actual == null ? "" : actual.ToString(), messages);
11+
}
12+
}
13+
}

exercise/division/evaluation/plan.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
},
2929
"runhaskell": {
3030
"file": "Evaluator.hs"
31+
},
32+
"csharp": {
33+
"file": "Evaluator.cs"
3134
}
3235
}
3336
}

exercise/division/solution/correct.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
int i = 10;
2+
i = i / 0;

exercise/division/solution/wrong.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
var hallo = 100 / 1;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using System;
2+
3+
class Submission
4+
{
5+
public static string Echo(string value)
6+
{
7+
return EchoClass.Echo(value);
8+
}
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public class EchoClass {
2+
public static E Echo<E>(E e) {
3+
return e;
4+
}
5+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using System;
2+
using System.IO;
3+
4+
class Submission
5+
{
6+
public static string EchoFile(string value)
7+
{
8+
return System.IO.File.ReadAllText(value).Trim();
9+
}
10+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using Tested;
2+
using System.Collections;
3+
4+
public class Evaluator {
5+
public static EvaluationResult Evaluate(Object actual) {
6+
var correct = "correct" == actual;
7+
var messages = new List<Message>() {new Tested.Message("Hallo")};
8+
return new EvaluationResult(correct, "correct", actual != null ? actual.ToString() : "", messages);
9+
}
10+
11+
public static EvaluationResult EvaluateValue(Object expected, Object actual, IList arguments) {
12+
var messages = new List<Message>() {new Tested.Message("Hallo")};
13+
return new EvaluationResult(expected == actual, expected.ToString(), actual != null ? actual.ToString() : "", messages);
14+
}
15+
}

0 commit comments

Comments
 (0)