Files
dockermcmgr/src/tests/minecraft/varint.rs
2026-06-14 16:33:23 +02:00

62 lines
1.6 KiB
Rust

use crate::minecraft::varint::{ varint_read, varint_write };
use std::collections::VecDeque;
#[test]
fn test_varint_no_interfere_other_values() {
let mut buf: VecDeque<u8> = vec![123, 0x28, 0x21].into();
let _ = varint_read(&mut buf);
assert_eq!(buf, vec![0x28, 0x21]);
}
#[test]
fn test_varint_right_answer() {
let mut buf: VecDeque<u8> = vec![0xa8, 0x60].into();
let res = varint_read(&mut buf);
assert_eq!(buf.len(), 0);
assert_eq!(res, Ok(12328));
}
#[test]
fn test_varint_incomplete() {
let mut buf: VecDeque<u8> = vec![0xa8].into();
let res = varint_read(&mut buf);
assert_eq!(buf.len(), 0);
assert_eq!(res.is_err(), true);
}
#[test]
fn test_varint_limits() {
let mut buf: VecDeque<u8> = vec![0x0].into();
let res_zero = varint_read(&mut buf);
let mut buf: VecDeque<u8> = vec![0xff, 0xff, 0xff, 0xff, 0x07].into();
let res_max_int = varint_read(&mut buf);
let mut buf: VecDeque<u8> = vec![0x80, 0x80, 0x80, 0x80, 0x8].into();
let res_min_int = varint_read(&mut buf);
assert_eq!(buf.len(), 0);
assert_eq!(res_zero, Ok(0));
assert_eq!(res_max_int, Ok(2147483647));
assert_eq!(res_min_int, Ok(-2147483648));
}
#[test]
fn test_varint_write_normal() {
let res = varint_write(82149);
assert_eq!(res, vec![0xe5, 0x81, 0x05]);
}
#[test]
fn test_varint_write_limits() {
let res_zero = varint_write(0);
let res_max_int = varint_write(2147483647);
let res_min_int = varint_write(-2147483648);
assert_eq!(res_zero, vec![0x00]);
assert_eq!(res_max_int, vec![0xff, 0xff, 0xff, 0xff, 0x07]);
assert_eq!(res_min_int, vec![0x80, 0x80, 0x80, 0x80, 0x8])
}