diff truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/ComplexNumber.java @ 22495:aeba89e1d8da

Add ComplexNumber sequence tests
author Matthias Grimmer <grimmer@ssw.jku.at>
date Fri, 11 Dec 2015 15:20:27 +0100
parents fa7b15454c66
children b3569a53c24c
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/ComplexNumber.java	Thu Dec 10 15:00:16 2015 +0100
+++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/ComplexNumber.java	Fri Dec 11 15:20:27 2015 +0100
@@ -33,39 +33,45 @@
 import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.api.nodes.RootNode;
 
-public class ComplexNumber implements TruffleObject {
+public final class ComplexNumber implements TruffleObject {
 
     public static final String REAL_IDENTIFIER = "real";
     public static final String IMAGINARY_IDENTIFIER = "imaginary";
 
-    private final double[] data = new double[2];
+    private double real;
+    private double imag;
 
     public ComplexNumber(double real, double imaginary) {
-        data[0] = real;
-        data[1] = imaginary;
+        this.real = real;
+        this.imag = imaginary;
     }
 
     public ForeignAccess getForeignAccess() {
         return ForeignAccess.create(new ComplexForeignAccessFactory());
     }
 
-    private static int identifierToIndex(String identifier) {
+    public void set(String identifier, double value) {
         switch (identifier) {
             case REAL_IDENTIFIER:
-                return 0;
+                this.real = value;
+                break;
             case IMAGINARY_IDENTIFIER:
-                return 1;
+                this.imag = value;
+                break;
             default:
                 throw new IllegalArgumentException();
         }
     }
 
-    public void set(String identifier, double value) {
-        data[identifierToIndex(identifier)] = value;
-    }
-
     public double get(String identifier) {
-        return data[identifierToIndex(identifier)];
+        switch (identifier) {
+            case REAL_IDENTIFIER:
+                return this.real;
+            case IMAGINARY_IDENTIFIER:
+                return this.imag;
+            default:
+                throw new IllegalArgumentException();
+        }
     }
 
     private static class ComplexForeignAccessFactory implements Factory {