1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use std::fs::File;
use std::io::prelude::*;

use crate::time_series::TimeSeries;

pub const DATA_FILE_NAME: &str = "pastelitos.txt";

pub fn data_file_to_vec(file_name: &str) -> std::io::Result<Vec<(f64, f64)>>{
    let mut file = File::open(file_name)?;
    let mut texto = String::new();
    file.read_to_string(&mut texto)?;
    let contenido: Vec<String> = texto.split(" ").map(|x| x.to_owned()).collect();
    
    let mut resultado = Vec::new();
    
    for i in 0..contenido.len() {
        resultado.push(
            ((i + 1) as f64,
            contenido[i].parse::<f64>().expect(
                format!("not a number in data input at pos{}", i).as_ref()
            ))
        )
    }
    Ok(resultado)
}

pub fn data_file_to_timeseries(file_name: &str) -> TimeSeries {
    let data = data_file_to_vec(file_name);
    TimeSeries::from_pairs_vec(data.expect(
        format!("couldn't create timeseries from data file: {}", file_name)
        .as_ref())
    )
}