use super::*;
impl<E: Environment> One for Field<E> {
fn one() -> Self {
Self::new(E::Field::one())
}
fn is_one(&self) -> bool {
self.field.is_one()
}
}
#[cfg(test)]
mod tests {
use super::*;
use snarkvm_console_network_environment::Console;
type CurrentEnvironment = Console;
const ITERATIONS: u64 = 100;
#[test]
fn test_one() {
let one = Field::<CurrentEnvironment>::one();
for (index, bit) in one.to_bits_le().iter().enumerate() {
match index == 0 {
true => assert!(bit),
false => assert!(!bit),
}
}
}
#[test]
fn test_is_one() {
assert!(Field::<CurrentEnvironment>::one().is_one());
let mut rng = TestRng::default();
for _ in 0..ITERATIONS {
let field: Field<CurrentEnvironment> = Uniform::rand(&mut rng);
assert!(!field.is_one());
}
}
}