Added support for Windows
This commit is contained in:
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@@ -2,7 +2,11 @@ name: build
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
## 0.2.0 (unreleased)
|
||||
|
||||
- Added support for Windows
|
||||
|
||||
Breaking changes
|
||||
|
||||
- Changed pattern for fitting models - use `Model::params()` instead of `Model::new()`
|
||||
- Changed `fit`, `fit_eval`, `cv`, `save`, and `load` to return `Result`
|
||||
- Changed `cv` to return average error
|
||||
|
||||
4
build.rs
4
build.rs
@@ -3,8 +3,8 @@ extern crate cc;
|
||||
fn main() {
|
||||
cc::Build::new()
|
||||
.cpp(true)
|
||||
.flag("-std=c++11")
|
||||
.flag("-Wno-unused-parameter")
|
||||
.flag_if_supported("-std=c++11")
|
||||
.flag_if_supported("-Wno-unused-parameter")
|
||||
.file("vendor/libmf/mf.cpp")
|
||||
.compile("mf");
|
||||
}
|
||||
|
||||
13
src/model.rs
13
src/model.rs
@@ -104,6 +104,7 @@ impl Drop for Model {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::{Error, Loss, Matrix, Model};
|
||||
use std::env;
|
||||
|
||||
fn generate_data() -> Matrix {
|
||||
let mut data = Matrix::new();
|
||||
@@ -156,8 +157,12 @@ mod tests {
|
||||
let data = generate_data();
|
||||
let model = Model::params().quiet(true).fit(&data).unwrap();
|
||||
|
||||
model.save("/tmp/model.txt").unwrap();
|
||||
let model = Model::load("/tmp/model.txt").unwrap();
|
||||
let mut path = env::temp_dir();
|
||||
path.push("model.txt");
|
||||
let path = path.to_str().unwrap();
|
||||
|
||||
model.save(path).unwrap();
|
||||
let model = Model::load(path).unwrap();
|
||||
|
||||
model.p_factors();
|
||||
model.q_factors();
|
||||
@@ -168,13 +173,13 @@ mod tests {
|
||||
fn test_save_missing() {
|
||||
let data = generate_data();
|
||||
let model = Model::params().quiet(true).fit(&data).unwrap();
|
||||
let result = model.save("/tmp/missing/model.txt");
|
||||
let result = model.save("missing/model.txt");
|
||||
assert_eq!(result.unwrap_err(), Error::Io);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_load_missing() {
|
||||
let result = Model::load("/tmp/missing.txt");
|
||||
let result = Model::load("missing.txt");
|
||||
assert_eq!(result.unwrap_err(), Error::Io);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user