summaryrefslogtreecommitdiff
path: root/vendor/itertools/examples
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/itertools/examples')
-rw-r--r--vendor/itertools/examples/iris.data150
-rw-r--r--vendor/itertools/examples/iris.rs140
2 files changed, 0 insertions, 290 deletions
diff --git a/vendor/itertools/examples/iris.data b/vendor/itertools/examples/iris.data
deleted file mode 100644
index a3490e0e..00000000
--- a/vendor/itertools/examples/iris.data
+++ /dev/null
@@ -1,150 +0,0 @@
-5.1,3.5,1.4,0.2,Iris-setosa
-4.9,3.0,1.4,0.2,Iris-setosa
-4.7,3.2,1.3,0.2,Iris-setosa
-4.6,3.1,1.5,0.2,Iris-setosa
-5.0,3.6,1.4,0.2,Iris-setosa
-5.4,3.9,1.7,0.4,Iris-setosa
-4.6,3.4,1.4,0.3,Iris-setosa
-5.0,3.4,1.5,0.2,Iris-setosa
-4.4,2.9,1.4,0.2,Iris-setosa
-4.9,3.1,1.5,0.1,Iris-setosa
-5.4,3.7,1.5,0.2,Iris-setosa
-4.8,3.4,1.6,0.2,Iris-setosa
-4.8,3.0,1.4,0.1,Iris-setosa
-4.3,3.0,1.1,0.1,Iris-setosa
-5.8,4.0,1.2,0.2,Iris-setosa
-5.7,4.4,1.5,0.4,Iris-setosa
-5.4,3.9,1.3,0.4,Iris-setosa
-5.1,3.5,1.4,0.3,Iris-setosa
-5.7,3.8,1.7,0.3,Iris-setosa
-5.1,3.8,1.5,0.3,Iris-setosa
-5.4,3.4,1.7,0.2,Iris-setosa
-5.1,3.7,1.5,0.4,Iris-setosa
-4.6,3.6,1.0,0.2,Iris-setosa
-5.1,3.3,1.7,0.5,Iris-setosa
-4.8,3.4,1.9,0.2,Iris-setosa
-5.0,3.0,1.6,0.2,Iris-setosa
-5.0,3.4,1.6,0.4,Iris-setosa
-5.2,3.5,1.5,0.2,Iris-setosa
-5.2,3.4,1.4,0.2,Iris-setosa
-4.7,3.2,1.6,0.2,Iris-setosa
-4.8,3.1,1.6,0.2,Iris-setosa
-5.4,3.4,1.5,0.4,Iris-setosa
-5.2,4.1,1.5,0.1,Iris-setosa
-5.5,4.2,1.4,0.2,Iris-setosa
-4.9,3.1,1.5,0.1,Iris-setosa
-5.0,3.2,1.2,0.2,Iris-setosa
-5.5,3.5,1.3,0.2,Iris-setosa
-4.9,3.1,1.5,0.1,Iris-setosa
-4.4,3.0,1.3,0.2,Iris-setosa
-5.1,3.4,1.5,0.2,Iris-setosa
-5.0,3.5,1.3,0.3,Iris-setosa
-4.5,2.3,1.3,0.3,Iris-setosa
-4.4,3.2,1.3,0.2,Iris-setosa
-5.0,3.5,1.6,0.6,Iris-setosa
-5.1,3.8,1.9,0.4,Iris-setosa
-4.8,3.0,1.4,0.3,Iris-setosa
-5.1,3.8,1.6,0.2,Iris-setosa
-4.6,3.2,1.4,0.2,Iris-setosa
-5.3,3.7,1.5,0.2,Iris-setosa
-5.0,3.3,1.4,0.2,Iris-setosa
-7.0,3.2,4.7,1.4,Iris-versicolor
-6.4,3.2,4.5,1.5,Iris-versicolor
-6.9,3.1,4.9,1.5,Iris-versicolor
-5.5,2.3,4.0,1.3,Iris-versicolor
-6.5,2.8,4.6,1.5,Iris-versicolor
-5.7,2.8,4.5,1.3,Iris-versicolor
-6.3,3.3,4.7,1.6,Iris-versicolor
-4.9,2.4,3.3,1.0,Iris-versicolor
-6.6,2.9,4.6,1.3,Iris-versicolor
-5.2,2.7,3.9,1.4,Iris-versicolor
-5.0,2.0,3.5,1.0,Iris-versicolor
-5.9,3.0,4.2,1.5,Iris-versicolor
-6.0,2.2,4.0,1.0,Iris-versicolor
-6.1,2.9,4.7,1.4,Iris-versicolor
-5.6,2.9,3.6,1.3,Iris-versicolor
-6.7,3.1,4.4,1.4,Iris-versicolor
-5.6,3.0,4.5,1.5,Iris-versicolor
-5.8,2.7,4.1,1.0,Iris-versicolor
-6.2,2.2,4.5,1.5,Iris-versicolor
-5.6,2.5,3.9,1.1,Iris-versicolor
-5.9,3.2,4.8,1.8,Iris-versicolor
-6.1,2.8,4.0,1.3,Iris-versicolor
-6.3,2.5,4.9,1.5,Iris-versicolor
-6.1,2.8,4.7,1.2,Iris-versicolor
-6.4,2.9,4.3,1.3,Iris-versicolor
-6.6,3.0,4.4,1.4,Iris-versicolor
-6.8,2.8,4.8,1.4,Iris-versicolor
-6.7,3.0,5.0,1.7,Iris-versicolor
-6.0,2.9,4.5,1.5,Iris-versicolor
-5.7,2.6,3.5,1.0,Iris-versicolor
-5.5,2.4,3.8,1.1,Iris-versicolor
-5.5,2.4,3.7,1.0,Iris-versicolor
-5.8,2.7,3.9,1.2,Iris-versicolor
-6.0,2.7,5.1,1.6,Iris-versicolor
-5.4,3.0,4.5,1.5,Iris-versicolor
-6.0,3.4,4.5,1.6,Iris-versicolor
-6.7,3.1,4.7,1.5,Iris-versicolor
-6.3,2.3,4.4,1.3,Iris-versicolor
-5.6,3.0,4.1,1.3,Iris-versicolor
-5.5,2.5,4.0,1.3,Iris-versicolor
-5.5,2.6,4.4,1.2,Iris-versicolor
-6.1,3.0,4.6,1.4,Iris-versicolor
-5.8,2.6,4.0,1.2,Iris-versicolor
-5.0,2.3,3.3,1.0,Iris-versicolor
-5.6,2.7,4.2,1.3,Iris-versicolor
-5.7,3.0,4.2,1.2,Iris-versicolor
-5.7,2.9,4.2,1.3,Iris-versicolor
-6.2,2.9,4.3,1.3,Iris-versicolor
-5.1,2.5,3.0,1.1,Iris-versicolor
-5.7,2.8,4.1,1.3,Iris-versicolor
-6.3,3.3,6.0,2.5,Iris-virginica
-5.8,2.7,5.1,1.9,Iris-virginica
-7.1,3.0,5.9,2.1,Iris-virginica
-6.3,2.9,5.6,1.8,Iris-virginica
-6.5,3.0,5.8,2.2,Iris-virginica
-7.6,3.0,6.6,2.1,Iris-virginica
-4.9,2.5,4.5,1.7,Iris-virginica
-7.3,2.9,6.3,1.8,Iris-virginica
-6.7,2.5,5.8,1.8,Iris-virginica
-7.2,3.6,6.1,2.5,Iris-virginica
-6.5,3.2,5.1,2.0,Iris-virginica
-6.4,2.7,5.3,1.9,Iris-virginica
-6.8,3.0,5.5,2.1,Iris-virginica
-5.7,2.5,5.0,2.0,Iris-virginica
-5.8,2.8,5.1,2.4,Iris-virginica
-6.4,3.2,5.3,2.3,Iris-virginica
-6.5,3.0,5.5,1.8,Iris-virginica
-7.7,3.8,6.7,2.2,Iris-virginica
-7.7,2.6,6.9,2.3,Iris-virginica
-6.0,2.2,5.0,1.5,Iris-virginica
-6.9,3.2,5.7,2.3,Iris-virginica
-5.6,2.8,4.9,2.0,Iris-virginica
-7.7,2.8,6.7,2.0,Iris-virginica
-6.3,2.7,4.9,1.8,Iris-virginica
-6.7,3.3,5.7,2.1,Iris-virginica
-7.2,3.2,6.0,1.8,Iris-virginica
-6.2,2.8,4.8,1.8,Iris-virginica
-6.1,3.0,4.9,1.8,Iris-virginica
-6.4,2.8,5.6,2.1,Iris-virginica
-7.2,3.0,5.8,1.6,Iris-virginica
-7.4,2.8,6.1,1.9,Iris-virginica
-7.9,3.8,6.4,2.0,Iris-virginica
-6.4,2.8,5.6,2.2,Iris-virginica
-6.3,2.8,5.1,1.5,Iris-virginica
-6.1,2.6,5.6,1.4,Iris-virginica
-7.7,3.0,6.1,2.3,Iris-virginica
-6.3,3.4,5.6,2.4,Iris-virginica
-6.4,3.1,5.5,1.8,Iris-virginica
-6.0,3.0,4.8,1.8,Iris-virginica
-6.9,3.1,5.4,2.1,Iris-virginica
-6.7,3.1,5.6,2.4,Iris-virginica
-6.9,3.1,5.1,2.3,Iris-virginica
-5.8,2.7,5.1,1.9,Iris-virginica
-6.8,3.2,5.9,2.3,Iris-virginica
-6.7,3.3,5.7,2.5,Iris-virginica
-6.7,3.0,5.2,2.3,Iris-virginica
-6.3,2.5,5.0,1.9,Iris-virginica
-6.5,3.0,5.2,2.0,Iris-virginica
-6.2,3.4,5.4,2.3,Iris-virginica
-5.9,3.0,5.1,1.8,Iris-virginica
diff --git a/vendor/itertools/examples/iris.rs b/vendor/itertools/examples/iris.rs
deleted file mode 100644
index 63f9c483..00000000
--- a/vendor/itertools/examples/iris.rs
+++ /dev/null
@@ -1,140 +0,0 @@
-///
-/// This example parses, sorts and groups the iris dataset
-/// and does some simple manipulations.
-///
-/// Iterators and itertools functionality are used throughout.
-use itertools::Itertools;
-use std::collections::HashMap;
-use std::iter::repeat;
-use std::num::ParseFloatError;
-use std::str::FromStr;
-
-static DATA: &str = include_str!("iris.data");
-
-#[derive(Clone, Debug)]
-struct Iris {
- name: String,
- data: [f32; 4],
-}
-
-#[allow(dead_code)] // fields are currently ignored
-#[derive(Clone, Debug)]
-enum ParseError {
- Numeric(ParseFloatError),
- Other(&'static str),
-}
-
-impl From<ParseFloatError> for ParseError {
- fn from(err: ParseFloatError) -> Self {
- Self::Numeric(err)
- }
-}
-
-/// Parse an Iris from a comma-separated line
-impl FromStr for Iris {
- type Err = ParseError;
-
- fn from_str(s: &str) -> Result<Self, Self::Err> {
- let mut iris = Self {
- name: "".into(),
- data: [0.; 4],
- };
- let mut parts = s.split(',').map(str::trim);
-
- // using Iterator::by_ref()
- for (index, part) in parts.by_ref().take(4).enumerate() {
- iris.data[index] = part.parse::<f32>()?;
- }
- if let Some(name) = parts.next() {
- iris.name = name.into();
- } else {
- return Err(ParseError::Other("Missing name"));
- }
- Ok(iris)
- }
-}
-
-fn main() {
- // using Itertools::fold_results to create the result of parsing
- let irises = DATA
- .lines()
- .map(str::parse)
- .fold_ok(Vec::new(), |mut v, iris: Iris| {
- v.push(iris);
- v
- });
- let mut irises = match irises {
- Err(e) => {
- println!("Error parsing: {:?}", e);
- std::process::exit(1);
- }
- Ok(data) => data,
- };
-
- // Sort them and group them
- irises.sort_by(|a, b| Ord::cmp(&a.name, &b.name));
-
- // using Iterator::cycle()
- let mut plot_symbols = "+ox".chars().cycle();
- let mut symbolmap = HashMap::new();
-
- // using Itertools::chunk_by
- for (species, species_chunk) in &irises.iter().chunk_by(|iris| &iris.name) {
- // assign a plot symbol
- symbolmap
- .entry(species)
- .or_insert_with(|| plot_symbols.next().unwrap());
- println!("{} (symbol={})", species, symbolmap[species]);
-
- for iris in species_chunk {
- // using Itertools::format for lazy formatting
- println!("{:>3.1}", iris.data.iter().format(", "));
- }
- }
-
- // Look at all combinations of the four columns
- //
- // See https://en.wikipedia.org/wiki/Iris_flower_data_set
- //
- let n = 30; // plot size
- let mut plot = vec![' '; n * n];
-
- // using Itertools::tuple_combinations
- for (a, b) in (0..4).tuple_combinations() {
- println!("Column {} vs {}:", a, b);
-
- // Clear plot
- //
- // using std::iter::repeat;
- // using Itertools::set_from
- plot.iter_mut().set_from(repeat(' '));
-
- // using Itertools::minmax
- let min_max = |data: &[Iris], col| {
- data.iter()
- .map(|iris| iris.data[col])
- .minmax()
- .into_option()
- .expect("Can't find min/max of empty iterator")
- };
- let (min_x, max_x) = min_max(&irises, a);
- let (min_y, max_y) = min_max(&irises, b);
-
- // Plot the data points
- let round_to_grid = |x, min, max| ((x - min) / (max - min) * ((n - 1) as f32)) as usize;
- let flip = |ix| n - 1 - ix; // reverse axis direction
-
- for iris in &irises {
- let ix = round_to_grid(iris.data[a], min_x, max_x);
- let iy = flip(round_to_grid(iris.data[b], min_y, max_y));
- plot[n * iy + ix] = symbolmap[&iris.name];
- }
-
- // render plot
- //
- // using Itertools::join
- for line in plot.chunks(n) {
- println!("{}", line.iter().join(" "))
- }
- }
-}