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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
use ;
smoke_test!;
smoke_test!;
// smoke_test!(program_3, "program_3.gcode");
smoke_test!;
smoke_test!;
smoke_test!;
// smoke_test!(insulpro_piping, "Insulpro.Piping.-.115mm.OD.-.40mm.WT.txt");
// #[test]
// #[ignore]
// fn expected_program_2_output() {
// // N10 T2 M3 S447 F80
// // N20 G0 X112 Y-2
// // ;N30 Z-5
// // N40 G41
// // N50 G1 X95 Y8 M8
// // ;N60 X32
// // ;N70 X5 Y15
// // ;N80 Y52
// // N90 G2 X15 Y62 I10 J0
// // N100 G1 X83
// // N110 G3 X95 Y50 I12 J0
// // N120 G1 Y-12
// // N130 G40
// // N140 G0 Z100 M9
// // ;N150 X150 Y150
// // N160 M30
// let src = include_str!("data/program_2.gcode");
// let got: Vec<_> =
// gcode::full_parse_with_callbacks(src, PanicOnError).collect();
// // total lines
// assert_eq!(got.len(), 20);
// // check lines without any comments
// assert_eq!(got.iter().filter(|l| l.comments().is_empty()).count(), 11);
// let gcodes: Vec<_> = got.iter().flat_map(|l| l.gcodes()).cloned().collect();
// let expected = vec![
// GCode::new(Mnemonic::ToolChange, 2.0, Span::PLACEHOLDER),
// GCode::new(Mnemonic::Miscellaneous, 3.0, Span::PLACEHOLDER)
// .with_argument(Word::new('S', 447.0, Span::PLACEHOLDER))
// .with_argument(Word::new('F', 80.0, Span::PLACEHOLDER)),
// ];
// pretty_assertions::assert_eq!(gcodes, expected);
// }