light-id 0.1.0

Generate and manipulate incremental IDs effortlessly
Documentation

use light_id::{IdSwitcher, LightId};

#[test]
fn new_switch () {
  let _ = IdSwitcher::new("0123456789", "01");
}

#[test]
fn switch () {
  let switch = IdSwitcher::new("0123456789", "01");

  assert_eq!("1", switch.switch("1"));
}

#[test]
fn switch_2 () {
  let switch = IdSwitcher::new("0123456789", "01");

  assert_eq!("1100100", switch.switch("100"));
}

#[test]
fn switch_3 () {
  let switch = IdSwitcher::new("01", "0123456789");

  assert_eq!("100", switch.switch("1100100"));
}

#[test]
fn switch_4 () {
  let switch = IdSwitcher::new("0123456789abcdef", "0123456789");
  let mut generator = LightId::from("0123456789abcdef");

  for _ in 0..1000 {
    generator.increment();

    assert_eq!(generator.count().to_string(), switch.switch(generator.current()));
  }
}

#[test]
fn min () {
  let mut switch = IdSwitcher::new("abcdefg", "abcdefghijklmnop");
  switch.min_target(10);

  assert_eq!("aaaaaaaaaa", switch.switch("a"));
}

#[test]
fn reverse () {
  let switch = IdSwitcher::new("0123456789", "abcdefghij");

  for i in 0..100 {
    assert_eq!(i.to_string(), switch.switch_reverse(switch.switch(i.to_string())));
  }
}