1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年5月18日 |
---|
#9 in #tsp
19KB
487 行
tsplib
TSPLIB实例解析器。
文档
许可
许可协议为以下之一
任选其一。
贡献
除非您明确表示,否则您有意提交给本工作的任何贡献,根据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);