1 个不稳定版本

使用旧的Rust 2015

0.1.0 2017年5月18日

#9 in #tsp

MIT/Apache

19KB
487

tsplib

TSPLIB实例解析器。

Build Status

文档

许可

许可协议为以下之一

任选其一。

贡献

除非您明确表示,否则您有意提交给本工作的任何贡献,根据Apache-2.0许可证定义,应双许可如上所述,无需任何额外条款或条件。


lib.rs:

TSPLIB实例解析器。

示例

use tsplib::{EdgeWeightType, NodeCoord, Type};
use std::io::Cursor;

let data = br#"
NAME : example
COMMENT : this is
COMMENT : a simple example
TYPE : TSP
DIMENSION : 3
EDGE_WEIGHT_TYPE: EUC_2D
NODE_COORD_SECTION
  1 1.2 3.4
  2 5.6 7.8
  3 9.0 1.2
EOF
"#;

let instance = tsplib::parse(Cursor::new(&data[..])).unwrap();
assert_eq!("example", instance.name);
assert_eq!(Some(Type::Tsp), instance.type_);
assert_eq!(vec!["this is".to_owned(), "a simple example".to_owned()], instance.comment);
assert_eq!(3, instance.dimension);
assert_eq!(0, instance.capacity);
assert_eq!(None, instance.edge_data);
assert_eq!(None, instance.edge_weight);
assert_eq!(Some(EdgeWeightType::Euc2d), instance.edge_weight_type);
assert_eq!(None, instance.fixed_edges);
assert_eq!(Some(NodeCoord::Two(vec![(1, 1.2, 3.4),
                                    (2, 5.6, 7.8),
                                    (3, 9.0, 1.2)])),
           instance.node_coord);
assert_eq!(None, instance.display_data);
assert_eq!(None, instance.display_data_type);
assert_eq!(None, instance.tour);

无运行时依赖