From eb709d6fc3fcc6d6206ad49949fb61c6069783ab Mon Sep 17 00:00:00 2001 From: microproofs Date: Tue, 5 Mar 2024 17:49:49 -0500 Subject: [PATCH] reorder tests to match order of functions --- crates/uplc/src/optimize/shrinker.rs | 218 +++++++++++++-------------- 1 file changed, 109 insertions(+), 109 deletions(-) diff --git a/crates/uplc/src/optimize/shrinker.rs b/crates/uplc/src/optimize/shrinker.rs index 0bb793f8..321e9d4a 100644 --- a/crates/uplc/src/optimize/shrinker.rs +++ b/crates/uplc/src/optimize/shrinker.rs @@ -1803,82 +1803,6 @@ mod tests { assert_eq!(actual, expected); } - #[test] - fn wrap_data_reduce_i_data() { - let mut program: Program = Program { - version: (1, 0, 0), - term: Term::equals_data() - .apply(Term::i_data().apply(Term::un_i_data().apply(Term::Constant( - Constant::Data(PlutusData::BigInt(BigInt::Int(5.into()))).into(), - )))) - .apply(Term::i_data().apply(Term::integer(1.into()))) - .lambda("x"), - }; - - let mut interner = CodeGenInterner::new(); - - interner.program(&mut program); - - let mut expected = Program { - version: (1, 0, 0), - term: Term::equals_data() - .apply(Term::Constant( - Constant::Data(PlutusData::BigInt(BigInt::Int(5.into()))).into(), - )) - .apply(Term::data(Data::integer(1.into()))) - .lambda("x"), - }; - - let mut interner = CodeGenInterner::new(); - - interner.program(&mut expected); - - let expected: Program = expected.try_into().unwrap(); - - let actual = program.cast_data_reducer(); - - let actual: Program = actual.try_into().unwrap(); - - assert_eq!(actual, expected); - } - - #[test] - fn wrap_data_reduce_un_i_data() { - let mut program: Program = Program { - version: (1, 0, 0), - term: Term::equals_integer() - .apply(Term::un_i_data().apply(Term::i_data().apply(Term::integer(1.into())))) - .apply(Term::un_i_data().apply(Term::Constant( - Constant::Data(PlutusData::BigInt(BigInt::Int(5.into()))).into(), - ))) - .lambda("x"), - }; - - let mut interner = CodeGenInterner::new(); - - interner.program(&mut program); - - let mut expected = Program { - version: (1, 0, 0), - term: Term::equals_integer() - .apply(Term::integer(1.into())) - .apply(Term::integer(5.into())) - .lambda("x"), - }; - - let mut interner = CodeGenInterner::new(); - - interner.program(&mut expected); - - let expected: Program = expected.try_into().unwrap(); - - let actual = program.cast_data_reducer(); - - let actual: Program = actual.try_into().unwrap(); - - assert_eq!(actual, expected); - } - #[test] fn builtin_force_reduce_list_builtins() { let program: Program = Program { @@ -1985,38 +1909,6 @@ mod tests { assert_eq!(actual, expected); } - #[test] - fn inline_reduce_delay_sha() { - let mut program: Program = Program { - version: (1, 0, 0), - term: Term::sha2_256() - .apply(Term::var("x")) - .lambda("x") - .apply(Term::byte_string(vec![]).delay()), - }; - - let mut interner = CodeGenInterner::new(); - - interner.program(&mut program); - - let mut expected = Program { - version: (1, 0, 0), - term: Term::sha2_256().apply(Term::byte_string(vec![]).delay()), - }; - - let mut interner = CodeGenInterner::new(); - - interner.program(&mut expected); - - let expected: Program = expected.try_into().unwrap(); - - let actual = program.inline_reducer(); - - let actual: Program = actual.try_into().unwrap(); - - assert_eq!(actual, expected); - } - #[test] fn identity_reduce_0_occurrence() { let mut program: Program = Program { @@ -2055,7 +1947,7 @@ mod tests { } #[test] - fn inline_reduce_identity_param() { + fn identity_reduce_param() { let mut program: Program = Program { version: (1, 0, 0), term: Term::sha2_256() @@ -2115,6 +2007,114 @@ mod tests { assert_eq!(actual, expected); } + #[test] + fn inline_reduce_delay_sha() { + let mut program: Program = Program { + version: (1, 0, 0), + term: Term::sha2_256() + .apply(Term::var("x")) + .lambda("x") + .apply(Term::byte_string(vec![]).delay()), + }; + + let mut interner = CodeGenInterner::new(); + + interner.program(&mut program); + + let mut expected = Program { + version: (1, 0, 0), + term: Term::sha2_256().apply(Term::byte_string(vec![]).delay()), + }; + + let mut interner = CodeGenInterner::new(); + + interner.program(&mut expected); + + let expected: Program = expected.try_into().unwrap(); + + let actual = program.inline_reducer(); + + let actual: Program = actual.try_into().unwrap(); + + assert_eq!(actual, expected); + } + + #[test] + fn wrap_data_reduce_i_data() { + let mut program: Program = Program { + version: (1, 0, 0), + term: Term::equals_data() + .apply(Term::i_data().apply(Term::un_i_data().apply(Term::Constant( + Constant::Data(PlutusData::BigInt(BigInt::Int(5.into()))).into(), + )))) + .apply(Term::i_data().apply(Term::integer(1.into()))) + .lambda("x"), + }; + + let mut interner = CodeGenInterner::new(); + + interner.program(&mut program); + + let mut expected = Program { + version: (1, 0, 0), + term: Term::equals_data() + .apply(Term::Constant( + Constant::Data(PlutusData::BigInt(BigInt::Int(5.into()))).into(), + )) + .apply(Term::data(Data::integer(1.into()))) + .lambda("x"), + }; + + let mut interner = CodeGenInterner::new(); + + interner.program(&mut expected); + + let expected: Program = expected.try_into().unwrap(); + + let actual = program.cast_data_reducer(); + + let actual: Program = actual.try_into().unwrap(); + + assert_eq!(actual, expected); + } + + #[test] + fn wrap_data_reduce_un_i_data() { + let mut program: Program = Program { + version: (1, 0, 0), + term: Term::equals_integer() + .apply(Term::un_i_data().apply(Term::i_data().apply(Term::integer(1.into())))) + .apply(Term::un_i_data().apply(Term::Constant( + Constant::Data(PlutusData::BigInt(BigInt::Int(5.into()))).into(), + ))) + .lambda("x"), + }; + + let mut interner = CodeGenInterner::new(); + + interner.program(&mut program); + + let mut expected = Program { + version: (1, 0, 0), + term: Term::equals_integer() + .apply(Term::integer(1.into())) + .apply(Term::integer(5.into())) + .lambda("x"), + }; + + let mut interner = CodeGenInterner::new(); + + interner.program(&mut expected); + + let expected: Program = expected.try_into().unwrap(); + + let actual = program.cast_data_reducer(); + + let actual: Program = actual.try_into().unwrap(); + + assert_eq!(actual, expected); + } + #[test] fn curry_reducer_test_1() { let mut program: Program = Program {