Skip to main content

xgboost_rs_sys/
lib.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![allow(clippy::upper_case_acronyms)]
5
6use std::env;
7
8include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
9
10#[cfg(test)]
11mod tests {
12    use super::*;
13
14    #[test]
15    fn read_matrix() {
16        let dmat_train_path = "xgboost/demo/data/agaricus.txt.train";
17
18        let silent = 0;
19        let mut handle = std::ptr::null_mut();
20        let fname = std::ffi::CString::new(dmat_train_path).unwrap();
21        let ret_val = unsafe { XGDMatrixCreateFromFile(fname.as_ptr(), silent, &mut handle) };
22        assert_eq!(ret_val, 0);
23
24        let mut num_rows = 0;
25        let ret_val = unsafe { XGDMatrixNumRow(handle, &mut num_rows) };
26        assert_eq!(ret_val, 0);
27        assert_eq!(num_rows, 6513);
28
29        let mut num_cols = 0;
30        let ret_val = unsafe { XGDMatrixNumCol(handle, &mut num_cols) };
31        assert_eq!(ret_val, 0);
32        assert_eq!(num_cols, 127);
33
34        let ret_val = unsafe { XGDMatrixFree(handle) };
35        assert_eq!(ret_val, 0);
36    }
37}