diff --git a/simulator/generation.rs b/simulator/generation.rs index d1006a953..07a93492b 100644 --- a/simulator/generation.rs +++ b/simulator/generation.rs @@ -30,7 +30,10 @@ pub(crate) fn frequency<'a, T, R: rand::Rng>( unreachable!() } -pub(crate) fn one_of<'a, T, R: rand::Rng>(choices: Vec T + 'a>>, rng: &mut R) -> T { +pub(crate) fn one_of<'a, T, R: rand::Rng>( + choices: Vec T + 'a>>, + rng: &mut R, +) -> T { let index = rng.gen_range(0..choices.len()); choices[index](rng) } diff --git a/simulator/generation/query.rs b/simulator/generation/query.rs index 9589944ab..ca6926650 100644 --- a/simulator/generation/query.rs +++ b/simulator/generation/query.rs @@ -220,10 +220,23 @@ impl ArbitraryFrom for Predicate { impl ArbitraryFrom<(&str, &Value)> for Predicate { fn arbitrary_from(rng: &mut R, (column_name, value): &(&str, &Value)) -> Self { - one_of(vec![ - Box::new(|rng| Predicate::Eq(column_name.to_string(), (*value).clone())), - Box::new(|rng| Predicate::Gt(column_name.to_string(), GTValue::arbitrary_from(rng, *value).0)), - Box::new(|rng| Predicate::Lt(column_name.to_string(), LTValue::arbitrary_from(rng, *value).0)), - ], rng) + one_of( + vec![ + Box::new(|rng| Predicate::Eq(column_name.to_string(), (*value).clone())), + Box::new(|rng| { + Predicate::Gt( + column_name.to_string(), + GTValue::arbitrary_from(rng, *value).0, + ) + }), + Box::new(|rng| { + Predicate::Lt( + column_name.to_string(), + LTValue::arbitrary_from(rng, *value).0, + ) + }), + ], + rng, + ) } } diff --git a/simulator/generation/table.rs b/simulator/generation/table.rs index 46b6b0df6..9af2d7d8e 100644 --- a/simulator/generation/table.rs +++ b/simulator/generation/table.rs @@ -1,6 +1,8 @@ use rand::Rng; -use crate::generation::{pick_index, gen_random_text, pick, readable_name_custom, Arbitrary, ArbitraryFrom}; +use crate::generation::{ + gen_random_text, pick, pick_index, readable_name_custom, Arbitrary, ArbitraryFrom, +}; use crate::model::table::{Column, ColumnType, Name, Table, Value}; impl Arbitrary for Name { @@ -80,7 +82,7 @@ impl ArbitraryFrom> for LTValue { if values.is_empty() { return LTValue(Value::Null); } - + let index = pick_index(values.len(), rng); LTValue::arbitrary_from(rng, values[index]) } diff --git a/simulator/main.rs b/simulator/main.rs index 00b415ce9..67d9b92f9 100644 --- a/simulator/main.rs +++ b/simulator/main.rs @@ -189,12 +189,10 @@ fn maybe_add_table(env: &mut SimulatorEnv, conn: &mut Rc) -> Result< .map(|_| Column::arbitrary(&mut env.rng)) .collect(), }; - let query = Query::Create(Create { table: table.clone() }); - let rows = get_all_rows( - env, - conn, - query.to_string().as_str(), - )?; + let query = Query::Create(Create { + table: table.clone(), + }); + let rows = get_all_rows(env, conn, query.to_string().as_str())?; log::debug!("{:?}", rows); let rows = get_all_rows( env, diff --git a/simulator/model/query.rs b/simulator/model/query.rs index ce227a252..eeec68d08 100644 --- a/simulator/model/query.rs +++ b/simulator/model/query.rs @@ -98,7 +98,7 @@ impl Display for Query { } write!(f, ")") - }, + } Query::Select(Select { table, predicate: guard,