#![allow(unused)]
use std::{thread, time::Duration};
use dev_utils::datetime::{Date, DateTime, Time};
use dev_utils::dlog::set_max_level;
use dev_utils::format::{Color, Style, Stylize};
use dev_utils::{app_dt, read_input};
use std::str::FromStr;
fn main() {
app_dt!(file!());
set_max_level(dev_utils::dlog::Level::Trace);
some();
}
fn test_io() {
let age = read_input::<u32>(Some("Enter your age: ")).unwrap();
let name = read_input::<String>(Some("Enter your name: ")).unwrap();
println!("Hello, {}! You are {} years old.", name, age);
}
fn test_pause() {
read_input::<i128>(Some("Press Enter to continue...")); read_input::<String>(None); }
fn f() {
let date = Date::new(2023, 5, 1).unwrap();
let time = Time::new(12, 34, 56).unwrap();
let dt = DateTime { date, time };
assert_eq!(dt.to_string(), "2023-05-01 12:34:56");
let parsed_dt = DateTime::from_str("2023-05-01 12:34:56").unwrap();
assert_eq!(parsed_dt, dt);
}
fn some() {
vec![
(2, 10, "11011100", "220"),
(2, 10, "110011", "51"),
(2, 10, "11001100", "204"),
(2, 10, "11110011", "243"),
(2, 10, "1100111", "103"),
(10, 2, "197", "11000101"),
(10, 2, "253", "11111101"),
(10, 2, "79", "1001111"),
(10, 2, "297", "100101001"),
(10, 2, "528", "1000010000"),
(2, 16, "100111011", "13B"),
(2, 16, "11011011", "DB"),
(2, 16, "101111011", "17B"),
(2, 16, "11011001", "D9"),
(2, 16, "111011101", "1DD"),
(16, 2, "9F", "10011111"),
(16, 2, "9BAF", "1001101110101111"),
(16, 2, "8BCD", "1000101111001101"),
(16, 2, "72BA", "111001010111010"),
(16, 2, "987", "100110000111"),
(16, 2, "9F27", "1001111100100111"),
(2, 8, "11011001", "331"),
(2, 8, "100111001", "471"),
(2, 8, "11100110", "346"),
(2, 8, "11001100", "314"),
(2, 8, "1101110", "156"),
(8, 2, "245", "10100101"),
(8, 2, "327", "11010111"),
(8, 2, "651", "110101001"),
]
.iter()
.for_each(|(src_base, new_base, src, result)| {
dev_utils::info!(
"{:>20} {} -> {:>24} {}",
src.style(Style::Bold),
format!("(b_{:<02})", src_base.to_string()).style(Style::Dim),
result.style(Style::Bold),
format!("(b_{:<02})", new_base.to_string()).style(Style::Dim)
);
assert_eq!(
dev_utils::base_change::convert_base(src, *src_base, *new_base).unwrap(),
*result
)
});
}