[vala/wip/issue/658: 30/48] Added anonymous delegate tests




commit 222d4ab94db1a7b6246c1078a635becf49fd7078
Author: Nick Schrader <nick schrader mailbox org>
Date:   Sat Oct 17 00:25:13 2020 -0300

    Added anonymous delegate tests

 tests/Makefile.am                         |  3 +++
 tests/delegates/anonymous-array.vala      | 15 +++++++++++++++
 tests/delegates/anonymous-type-param.vala | 20 ++++++++++++++++++++
 tests/delegates/anonymous.vala            |  9 +++++++++
 4 files changed, 47 insertions(+)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 168a3fe6e..3d40ea966 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -337,6 +337,9 @@ TESTS = \
        structs/bug775761.vala \
        structs/bug777194.vala \
        structs/bug777194-2.vala \
+       delegates/anonymous.vala \
+       delegates/anonymous-array.vala \
+       delegates/anonymous-type-param.vala \
        delegates/casting.vala \
        delegates/compatible.vala \
        delegates/delegate_only.vala \
diff --git a/tests/delegates/anonymous-array.vala b/tests/delegates/anonymous-array.vala
new file mode 100644
index 000000000..116a523fd
--- /dev/null
+++ b/tests/delegates/anonymous-array.vala
@@ -0,0 +1,15 @@
+void main() {
+    f((a, b) => {
+        int r = 0;
+        for (int i = 0; i < a.length; i++) {
+            r += a[i]*b[i];
+        }
+        return r;
+    });
+}
+
+void f(delegate(int[], int[]) => int abc) {
+    int i[] = {1, 2, 3};
+    int j[] = {7, 8, 9};
+    assert (abc (i, j) == 50);
+}
diff --git a/tests/delegates/anonymous-type-param.vala b/tests/delegates/anonymous-type-param.vala
new file mode 100644
index 000000000..052a703ef
--- /dev/null
+++ b/tests/delegates/anonymous-type-param.vala
@@ -0,0 +1,20 @@
+void main() {
+    f(t);
+}
+
+string t(Comp<string> a, Comp<string> b) {
+    return a.a+b.a;
+}
+
+
+void f(delegate(Comp<string>, Comp<string>) => string abc) {
+    assert (abc(new Comp<string>("x"), new Comp<string>("y")) == "xy");
+}
+
+class Comp<A> {
+    public A a { get; private set; }
+
+    public Comp (A a) {
+        this.a = a;
+    }
+}
diff --git a/tests/delegates/anonymous.vala b/tests/delegates/anonymous.vala
new file mode 100644
index 000000000..cbb8b049b
--- /dev/null
+++ b/tests/delegates/anonymous.vala
@@ -0,0 +1,9 @@
+void main () {
+    f((a, b) => {
+        return a+b;
+    });
+}
+
+void f (delegate(int, int) => int abc) {
+    assert (abc (1, 2) == 3);
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]