use bigsmiles::{parse, ParseError};
#[test]
fn error_unclosed_stochastic_object() {
let err = parse("{[$]CC[$]").unwrap_err();
assert!(
matches!(err, ParseError::UnclosedStochasticObject),
"got {err:?}"
);
}
#[test]
fn error_empty_smiles_between_bond_descriptors() {
let err = parse("{[$][$][$]}").unwrap_err();
assert!(matches!(err, ParseError::EmptySmiles), "got {err:?}");
}
#[test]
fn error_invalid_smiles_in_stochastic() {
let err = parse("{[$]INVALID_SMILES[$]}").unwrap_err();
assert!(matches!(err, ParseError::SmilesError(_)), "got {err:?}");
}
#[test]
fn error_invalid_smiles_as_outer_fragment() {
let err = parse("XYZ{[$]CC[$]}").unwrap_err();
assert!(matches!(err, ParseError::SmilesError(_)), "got {err:?}");
}
#[test]
fn error_unclosed_stochastic_missing_right_bd() {
let err = parse("{[$]CC}").unwrap_err();
assert!(
matches!(
err,
ParseError::UnexpectedChar(_, _) | ParseError::InvalidBondDescriptor(_)
),
"got {err:?}"
);
}
#[test]
fn error_bond_descriptor_unclosed_bracket() {
let err = parse("{[$CC[$]}").unwrap_err();
assert!(
matches!(
err,
ParseError::InvalidBondDescriptor(_) | ParseError::UnexpectedChar(_, _)
),
"got {err:?}"
);
}