Add gen test for deriving hash for heterogenous tags

This commit is contained in:
Ayaz Hafiz 2022-10-04 17:28:35 -05:00
parent ff70832068
commit 00ca8f2f80
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58

View file

@ -1332,7 +1332,7 @@ mod hash {
} }
mod derived { mod derived {
use super::{assert_evals_to, build_test}; use super::{assert_evals_to, build_test, indoc, TEST_HASHER};
use roc_std::RocList; use roc_std::RocList;
#[test] #[test]
@ -1372,5 +1372,46 @@ mod hash {
RocList<u8> RocList<u8>
) )
} }
#[test]
fn hash_heterogenous_tags() {
assert_evals_to!(
&format!(
indoc!(
r#"
app "test" provides [main] to "./platform"
{}
a : [A U8 U8, B {{ a: U8 }}, C Str]
a = A 15 23
b : [A U8 U8, B {{ a: U8 }}, C Str]
b = B {{ a: 37 }}
c : [A U8 U8, B {{ a: U8 }}, C Str]
c = C "abc"
main =
@THasher []
|> Hash.hash a
|> Hash.hash b
|> Hash.hash c
|> tRead
"#
),
TEST_HASHER,
),
RocList::from_slice(&[
0, 0, // dicsr A
15, 23, // payloads A
1, 0, // discr B
37, // payloads B
2, 0, // discr B
97, 98, 99 // payloads C
]),
RocList<u8>
)
}
} }
} }