#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum BondPotentialType {
#[default]
Harmonic,
Morse,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum AnglePotentialType {
#[default]
Cosine,
Theta,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum VdwPotentialType {
#[default]
LennardJones,
Buckingham,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn bond_potential_default() {
assert_eq!(BondPotentialType::default(), BondPotentialType::Harmonic);
}
#[test]
fn angle_potential_default() {
assert_eq!(AnglePotentialType::default(), AnglePotentialType::Cosine);
}
#[test]
fn vdw_potential_default() {
assert_eq!(VdwPotentialType::default(), VdwPotentialType::LennardJones);
}
#[test]
fn potential_types_are_copy() {
let bond = BondPotentialType::Morse;
let bond_copy = bond;
assert_eq!(bond, bond_copy);
let angle = AnglePotentialType::Cosine;
let angle_copy = angle;
assert_eq!(angle, angle_copy);
let vdw = VdwPotentialType::Buckingham;
let vdw_copy = vdw;
assert_eq!(vdw, vdw_copy);
}
}