fix formatting

This commit is contained in:
alpaylan
2024-12-18 17:10:18 -05:00
parent 39b5dbed55
commit cb20ca7e40
5 changed files with 31 additions and 15 deletions

View File

@@ -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<Box<dyn Fn(&mut R) -> T + 'a>>, rng: &mut R) -> T {
pub(crate) fn one_of<'a, T, R: rand::Rng>(
choices: Vec<Box<dyn Fn(&mut R) -> T + 'a>>,
rng: &mut R,
) -> T {
let index = rng.gen_range(0..choices.len());
choices[index](rng)
}

View File

@@ -220,10 +220,23 @@ impl ArbitraryFrom<Table> for Predicate {
impl ArbitraryFrom<(&str, &Value)> for Predicate {
fn arbitrary_from<R: Rng>(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,
)
}
}

View File

@@ -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<Vec<&Value>> for LTValue {
if values.is_empty() {
return LTValue(Value::Null);
}
let index = pick_index(values.len(), rng);
LTValue::arbitrary_from(rng, values[index])
}

View File

@@ -189,12 +189,10 @@ fn maybe_add_table(env: &mut SimulatorEnv, conn: &mut Rc<Connection>) -> 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,

View File

@@ -98,7 +98,7 @@ impl Display for Query {
}
write!(f, ")")
},
}
Query::Select(Select {
table,
predicate: guard,