diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2025-12-04 00:44:06 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-04 00:44:06 -0300 |
| commit | c4e1b573dacd67277ea9df1751574ef2dfb44601 (patch) | |
| tree | 65c25171935e503716a694383dc19a5b300140a0 /test/function_relations_test.erl | |
| parent | ac7b0497ed6d13605fdb4cd4bda557d9182e3037 (diff) | |
| download | Sakura-c4e1b573dacd67277ea9df1751574ef2dfb44601.tar.gz Sakura-c4e1b573dacd67277ea9df1751574ef2dfb44601.zip | |
Infinite domains and membership rework (#22)
Diffstat (limited to '')
| -rw-r--r-- | test/function_relations_test.erl | 66 |
1 files changed, 29 insertions, 37 deletions
diff --git a/test/function_relations_test.erl b/test/function_relations_test.erl index a9164bf..a6ab2d2 100644 --- a/test/function_relations_test.erl +++ b/test/function_relations_test.erl @@ -38,51 +38,43 @@ setup() -> operations:setup(), DB = operations:create_database(test_db), - % First set up the basic number types (integers, naturals, etc) - {DB1, _Integers} = operations:create_infinite_relation(DB, #{ - name => integers, - schema => #{}, % empty schema - this is a base type - cardinality => aleph_zero, - generator => {primitive, integers} + % Integers and naturals are now built-in to every database + % Just create the function relations using the new format + + % Create function relations - note how their schemas reference the domain relations + {DB1, _Plus} = operations:create_immutable_relation(DB, #immutable_relation_spec{ + name = plus, + schema = #{a => integer, b => integer, sum => integer}, + generator = {generators, plus}, + membership_criteria = #{}, + cardinality = aleph_zero }), - {DB2, _Naturals} = operations:create_infinite_relation(DB1, #{ - name => naturals, - schema => #{}, - cardinality => aleph_zero, - generator => {primitive, naturals} + {DB2, _Times} = operations:create_immutable_relation(DB1, #immutable_relation_spec{ + name = times, + schema = #{a => integer, b => integer, product => integer}, + generator = {generators, times}, + membership_criteria = #{}, + cardinality = aleph_zero }), - % Now create the function relations - note how their schemas reference the domain relations above - {DB3, _Plus} = operations:create_infinite_relation(DB2, #{ - name => plus, - schema => #{a => integers, b => integers, sum => integers}, - cardinality => aleph_zero, - generator => {primitive, plus} + {DB3, _Minus} = operations:create_immutable_relation(DB2, #immutable_relation_spec{ + name = minus, + schema = #{a => integer, b => integer, difference => integer}, + generator = {generators, minus}, + membership_criteria = #{}, + cardinality = aleph_zero }), - {DB4, _Times} = operations:create_infinite_relation(DB3, #{ - name => times, - schema => #{a => integers, b => integers, product => integers}, - cardinality => aleph_zero, - generator => {primitive, times} + {DB4, _Divide} = operations:create_immutable_relation(DB3, #immutable_relation_spec{ + name = divide, + schema = #{a => integer, b => integer, quotient => integer, remainder => natural}, + generator = {generators, divide}, + membership_criteria = #{}, + cardinality = aleph_zero }), - {DB5, _Minus} = operations:create_infinite_relation(DB4, #{ - name => minus, - schema => #{a => integers, b => integers, difference => integers}, - cardinality => aleph_zero, - generator => {primitive, minus} - }), - - {DB6, _Divide} = operations:create_infinite_relation(DB5, #{ - name => divide, - schema => #{a => integers, b => integers, quotient => integers, remainder => naturals}, - cardinality => aleph_zero, - generator => {primitive, divide} - }), - - DB6. + DB4. cleanup(_DB) -> ok. |
