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());