diff --git a/direct-file/fact-graph-scala/shared/src/test/scala/gov/irs/factgraph/compnodes/ModuloSpec.scala b/direct-file/fact-graph-scala/shared/src/test/scala/gov/irs/factgraph/compnodes/ModuloSpec.scala new file mode 100644 index 0000000..a00c318 --- /dev/null +++ b/direct-file/fact-graph-scala/shared/src/test/scala/gov/irs/factgraph/compnodes/ModuloSpec.scala @@ -0,0 +1,45 @@ +package gov.irs.factgraph.compnodes + +import gov.irs.factgraph.FactDictionary +import gov.irs.factgraph.definitions.fact.{ + CommonOptionConfigTraits, + CompNodeConfigElement +} +import org.scalatest.funspec.AnyFunSpec +import gov.irs.factgraph.monads.Result +import gov.irs.factgraph.types.* + +class ModuloSpec extends AnyFunSpec: + describe("Modulo") { + it("reduces Int modulo Int") { + val node = CompNode.fromDerivedConfig( + new CompNodeConfigElement( + "Modulo", + Seq( + new CompNodeConfigElement( + "Dividend", + Seq( + new CompNodeConfigElement( + "Int", + Seq.empty, + CommonOptionConfigTraits.value("5") + ) + ) + ), + new CompNodeConfigElement( + "Modulus", + Seq( + new CompNodeConfigElement( + "Int", + Seq.empty, + CommonOptionConfigTraits.value("3") + ) + ) + ) + ) + ) + ) + + assert(node.get(0) == Result.Complete(Int("2"))) + } + }