@@ -429,9 +429,8 @@ mod tests {
429
429
430
430
#[ test]
431
431
fn implicit_command_after_newline ( ) {
432
- let src = "G90 \n G01 X1.0 Y2.0\n X3.0 Y4.0" ;
432
+ let src = "G01 X1.0 Y2.0\n X3.0 Y4.0" ;
433
433
let expected = vec ! [
434
- GCode :: new( Mnemonic :: General , 90.0 , Span :: PLACEHOLDER ) ,
435
434
GCode :: new( Mnemonic :: General , 1.0 , Span :: PLACEHOLDER )
436
435
. with_argument( Word :: new( 'X' , 1.0 , Span :: PLACEHOLDER ) )
437
436
. with_argument( Word :: new( 'Y' , 2.0 , Span :: PLACEHOLDER ) ) ,
@@ -444,4 +443,23 @@ mod tests {
444
443
assert_eq ! ( got, expected) ;
445
444
}
446
445
446
+ #[ test]
447
+ // This test focuses on the G90 and M7 on the same line.
448
+ fn two_commands_in_a_row ( ) {
449
+ let src = "G90 M7\n G01 X1.0 Y2.0\n X3.0 Y4.0" ;
450
+ let expected = vec ! [
451
+ GCode :: new( Mnemonic :: General , 90.0 , Span :: PLACEHOLDER ) ,
452
+ GCode :: new( Mnemonic :: Miscellaneous , 7.0 , Span :: PLACEHOLDER ) ,
453
+ GCode :: new( Mnemonic :: General , 1.0 , Span :: PLACEHOLDER )
454
+ . with_argument( Word :: new( 'X' , 1.0 , Span :: PLACEHOLDER ) )
455
+ . with_argument( Word :: new( 'Y' , 2.0 , Span :: PLACEHOLDER ) ) ,
456
+ GCode :: new( Mnemonic :: General , 1.0 , Span :: PLACEHOLDER )
457
+ . with_argument( Word :: new( 'X' , 3.0 , Span :: PLACEHOLDER ) )
458
+ . with_argument( Word :: new( 'Y' , 4.0 , Span :: PLACEHOLDER ) ) ,
459
+ ] ;
460
+
461
+ let got: Vec < _ > = crate :: parse ( src) . collect ( ) ;
462
+ dbg ! ( & got) ;
463
+ assert_eq ! ( got, expected) ;
464
+ }
447
465
}
0 commit comments