This is an automated email from the ASF dual-hosted git repository.

baunsgaard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git


The following commit(s) were added to refs/heads/main by this push:
     new e34286db5a [MINOR] Include HASH Type in HighestCommonType
e34286db5a is described below

commit e34286db5a4e17a9a8764e37e31510fbc7949dd2
Author: Sebastian Baunsgaard <[email protected]>
AuthorDate: Sat Dec 28 14:41:16 2024 +0100

    [MINOR] Include HASH Type in HighestCommonType
    
    This commit adds the HASH types to the switch statement for 
highestCommonType.
    
    Closes #2161
    
    Signed-off-by: Sebastian Baunsgaard <[email protected]>
---
 src/main/java/org/apache/sysds/common/Types.java   | 20 ++++-
 .../apache/sysds/test/component/misc/TypeTest.java | 85 ++++++++++++++++++++++
 2 files changed, 103 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sysds/common/Types.java 
b/src/main/java/org/apache/sysds/common/Types.java
index ba264dea7f..dd351ae894 100644
--- a/src/main/java/org/apache/sysds/common/Types.java
+++ b/src/main/java/org/apache/sysds/common/Types.java
@@ -322,10 +322,12 @@ public interface Types {
                                        }
                                case FP64:
                                        switch(b) {
-                                               case UNKNOWN:
-                                                       return a;
+                                               case HASH64:
+                                               case HASH32:
                                                case CHARACTER:
                                                        return STRING;
+                                               case UNKNOWN:
+                                                       return a;
                                                case STRING:
                                                        return b;
                                                default:
@@ -333,6 +335,8 @@ public interface Types {
                                        }
                                case FP32:
                                        switch(b) {
+                                               case HASH64:
+                                               case HASH32:
                                                case CHARACTER:
                                                        return STRING;
                                                case STRING:
@@ -344,6 +348,9 @@ public interface Types {
                                        }
                                case INT64:
                                        switch(b) {
+                                               case HASH64:
+                                               case HASH32:
+                                                       return b;
                                                case CHARACTER:
                                                        return STRING;
                                                case STRING:
@@ -356,6 +363,9 @@ public interface Types {
                                        }
                                case INT32:
                                        switch(b) {
+                                               case HASH64:
+                                               case HASH32:
+                                                       return b;
                                                case CHARACTER:
                                                        return STRING;
                                                case STRING:
@@ -369,6 +379,9 @@ public interface Types {
                                        }
                                case UINT4:
                                        switch(b) {
+                                               case HASH64:
+                                               case HASH32:
+                                                       return b;
                                                case CHARACTER:
                                                        return STRING;
                                                case STRING:
@@ -384,6 +397,9 @@ public interface Types {
                                        }
                                case UINT8:
                                        switch(b) {
+                                               case HASH64:
+                                               case HASH32:
+                                                       return b;
                                                case CHARACTER:
                                                        return STRING;
                                                case STRING:
diff --git a/src/test/java/org/apache/sysds/test/component/misc/TypeTest.java 
b/src/test/java/org/apache/sysds/test/component/misc/TypeTest.java
index 8ff6ed15a4..5f8391921b 100644
--- a/src/test/java/org/apache/sysds/test/component/misc/TypeTest.java
+++ b/src/test/java/org/apache/sysds/test/component/misc/TypeTest.java
@@ -368,6 +368,91 @@ public class TypeTest {
                assertEquals(ValueType.STRING, hct(ValueType.STRING, 
ValueType.BOOLEAN));
        }
 
+       @Test
+       public void getHighestCommonTypeSTRING_HASH32() {
+               assertEquals(ValueType.STRING, hct(ValueType.STRING, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeSTRING_HASH64() {
+               assertEquals(ValueType.STRING, hct(ValueType.STRING, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeUINT8_HASH64() {
+               assertEquals(ValueType.HASH64, hct(ValueType.UINT8, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeUINT4_HASH64() {
+               assertEquals(ValueType.HASH64, hct(ValueType.UINT4, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeINT_HASH64() {
+               assertEquals(ValueType.HASH64, hct(ValueType.INT32, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeINT64_HASH64() {
+               assertEquals(ValueType.HASH64, hct(ValueType.INT64, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeFP32_HASH64() {
+               assertEquals(ValueType.STRING, hct(ValueType.FP32, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeFP64_HASH64() {
+               assertEquals(ValueType.STRING, hct(ValueType.FP64, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeHASH32_HASH64() {
+               assertEquals(ValueType.HASH64, hct(ValueType.HASH32, 
ValueType.HASH64));
+       }
+
+       @Test
+       public void getHighestCommonTypeUINT8_HASH32() {
+               assertEquals(ValueType.HASH32, hct(ValueType.UINT8, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeUINT4_HASH32() {
+               assertEquals(ValueType.HASH32, hct(ValueType.UINT4, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeINT_HASH32() {
+               assertEquals(ValueType.HASH32, hct(ValueType.INT32, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeINT64_HASH32() {
+               assertEquals(ValueType.HASH32, hct(ValueType.INT64, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeFP32_HASH32() {
+               assertEquals(ValueType.STRING, hct(ValueType.FP32, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeFP64_HASH32() {
+               assertEquals(ValueType.STRING, hct(ValueType.FP64, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeHASH32_HASH32() {
+               assertEquals(ValueType.HASH32, hct(ValueType.HASH32, 
ValueType.HASH32));
+       }
+
+       @Test
+       public void getHighestCommonTypeHASH64_HASH64() {
+               assertEquals(ValueType.HASH64, hct(ValueType.HASH64, 
ValueType.HASH64));
+       }
+
        @Test
        public void isUnknownNot() {
                assertFalse(ValueType.STRING.isUnknown());

Reply via email to