Fix test_framework tests trying to implement function on foreign type.

This commit is contained in:
KtorZ 2024-08-29 13:48:57 +02:00
parent c21466831c
commit 79cf0b8d97
No known key found for this signature in database
GPG Key ID: 33173CB6F77F4277
3 changed files with 107 additions and 100 deletions

View File

@ -12,6 +12,7 @@ authors = [
"KtorZ <matthias.benkort@gmail.com>",
]
rust-version = "1.66.1"
build = "build.rs"
[dependencies]
blst = "0.3.11"

View File

@ -274,7 +274,7 @@ impl PropertyTest {
})
}
fn run_n_times<'a>(
pub fn run_n_times<'a>(
&'a self,
remaining: &mut usize,
initial_prng: Prng,
@ -617,7 +617,7 @@ impl<'a> Counterexample<'a> {
/// - Sorting chunks in ascending order
/// - Swapping nearby pairs
/// - Redistributing values between nearby pairs
fn simplify(&mut self) {
pub fn simplify(&mut self) {
let mut prev;
loop {

View File

@ -5,22 +5,28 @@ mod test {
utils,
};
use aiken_lang::{
ast::{Definition, ModuleKind, TraceLevel, Tracing},
ast::{DataTypeKey, Definition, ModuleKind, TraceLevel, Tracing, TypedDataType},
builtins,
expr::UntypedExpr,
format::Formatter,
gen_uplc::CodeGenerator,
line_numbers::LineNumbers,
parser::{self, extra::ModuleExtra},
plutus_version::PlutusVersion,
test_framework::*,
IdGenerator,
};
use indexmap::IndexMap;
use indoc::indoc;
use std::collections::HashMap;
use std::{
collections::{BTreeMap, HashMap},
path::PathBuf,
};
use uplc::PlutusData;
const TEST_KIND: ModuleKind = ModuleKind::Lib;
impl Test {
pub fn from_source(src: &str) -> (Self, IndexMap<DataTypeKey, TypedDataType>) {
pub fn test_from_source(src: &str) -> (Test, IndexMap<DataTypeKey, TypedDataType>) {
let id_gen = IdGenerator::new();
let module_name = "";
@ -88,7 +94,7 @@ mod test {
);
(
Self::from_function_definition(
Test::from_function_definition(
&mut generator,
test.to_owned(),
module_name.to_string(),
@ -97,7 +103,6 @@ mod test {
data_types,
)
}
}
fn property(src: &str) -> (PropertyTest, impl Fn(PlutusData) -> String) {
let prelude = indoc! { r#"
@ -191,7 +196,7 @@ mod test {
let src = format!("{prelude}\n{src}");
match Test::from_source(&src) {
match test_from_source(&src) {
(Test::PropertyTest(test), data_types) => {
let type_info = test.fuzzer.type_info.clone();
@ -210,11 +215,13 @@ mod test {
}
}
impl PropertyTest {
fn expect_failure<'a>(&'a self, plutus_version: &'a PlutusVersion) -> Counterexample<'a> {
fn expect_failure<'a>(
prop: &'a PropertyTest,
plutus_version: &'a PlutusVersion,
) -> Counterexample<'a> {
let mut labels = BTreeMap::new();
let mut remaining = PropertyTest::DEFAULT_MAX_SUCCESS;
match self.run_n_times(
match prop.run_n_times(
&mut remaining,
Prng::from_seed(42),
&mut labels,
@ -224,7 +231,6 @@ mod test {
_ => panic!("expected property to fail but it didn't."),
}
}
}
#[test]
fn test_prop_basic() {
@ -290,7 +296,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -318,7 +324,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -335,7 +341,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -363,7 +369,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -391,7 +397,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -422,7 +428,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -458,7 +464,7 @@ mod test {
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -493,7 +499,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();
@ -528,7 +534,7 @@ mod test {
"#});
let plutus_version = PlutusVersion::default();
let mut counterexample = prop.expect_failure(&plutus_version);
let mut counterexample = expect_failure(&prop, &plutus_version);
counterexample.simplify();