From e667fc3613f16dba8793c829a8313736b9892ad9 Mon Sep 17 00:00:00 2001 From: Turner Date: Wed, 22 Jun 2022 21:53:02 -0700 Subject: [PATCH] Add passing tests for builder --- Cargo.lock | 7 +++++++ Cargo.toml | 2 +- crates/program_builder/Cargo.toml | 10 ++++++++++ crates/program_builder/src/lib.rs | 32 +++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 crates/program_builder/Cargo.toml create mode 100644 crates/program_builder/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 12706516..b9d60342 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,6 +235,13 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "program_builder" +version = "0.1.0" +dependencies = [ + "uplc", +] + [[package]] name = "quote" version = "1.0.18" diff --git a/Cargo.toml b/Cargo.toml index f409c5ce..0b391440 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,2 +1,2 @@ [workspace] -members = ["crates/cli", "crates/flat", "crates/uplc"] +members = ["crates/cli", "crates/flat", "crates/uplc", "crates/program_builder"] diff --git a/crates/program_builder/Cargo.toml b/crates/program_builder/Cargo.toml new file mode 100644 index 00000000..5a2c61f7 --- /dev/null +++ b/crates/program_builder/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "program_builder" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +# 1st party +uplc = { path = '../uplc', version = "0.0.3" } diff --git a/crates/program_builder/src/lib.rs b/crates/program_builder/src/lib.rs new file mode 100644 index 00000000..5a2c4726 --- /dev/null +++ b/crates/program_builder/src/lib.rs @@ -0,0 +1,32 @@ +use uplc::ast::{Constant, DeBruijn, Name, Program, Term}; + +#[derive(Default)] +pub struct Builder { + // version: (usize, usize, usize), +} + +impl Builder { + pub fn build_named(&self) -> Program { + Program { + version: (11, 22, 33), + term: Term::Constant(Constant::Integer(11)), + } + } +} + +#[cfg(test)] +mod tests { + use crate::Builder; + use uplc::parser; + + #[test] + fn it_works() { + let code = r"(program + 11.22.33 + (con integer 11) + )"; + let expected = parser::program(code).unwrap(); + let actual = Builder::default().build_named(); + assert_eq!(expected, actual); + } +}