@@ -652,5 +652,94 @@ public void TestTokenReader31()
652652 List < Token > tokens = reader . Read ( "0..1" ) ;
653653 } ) ;
654654 }
655+
656+ [ TestMethod ]
657+ public void TestTokenReader32 ( )
658+ {
659+ var reader = new TokenReader < double > ( CultureInfo . InvariantCulture , DoubleNumericalOperations . Instance ) ;
660+ List < Token > tokens = reader . Read ( "-e" ) ;
661+
662+ Assert . AreEqual ( 2 , tokens . Count ) ;
663+
664+ Assert . AreEqual ( '_' , tokens [ 0 ] . Value ) ;
665+ Assert . AreEqual ( 0 , tokens [ 0 ] . StartPosition ) ;
666+ Assert . AreEqual ( 1 , tokens [ 0 ] . Length ) ;
667+
668+ Assert . AreEqual ( "e" , tokens [ 1 ] . Value ) ;
669+ Assert . AreEqual ( 1 , tokens [ 1 ] . StartPosition ) ;
670+ Assert . AreEqual ( 1 , tokens [ 1 ] . Length ) ;
671+ }
672+
673+ [ TestMethod ]
674+ public void TestTokenReader33 ( )
675+ {
676+ var reader = new TokenReader < double > ( CultureInfo . InvariantCulture , DoubleNumericalOperations . Instance ) ;
677+ List < Token > tokens = reader . Read ( "1-e" ) ;
678+
679+ Assert . AreEqual ( 3 , tokens . Count ) ;
680+
681+ Assert . AreEqual ( 1 , tokens [ 0 ] . Value ) ;
682+ Assert . AreEqual ( 0 , tokens [ 0 ] . StartPosition ) ;
683+ Assert . AreEqual ( 1 , tokens [ 0 ] . Length ) ;
684+
685+ Assert . AreEqual ( '-' , tokens [ 1 ] . Value ) ;
686+ Assert . AreEqual ( 1 , tokens [ 1 ] . StartPosition ) ;
687+ Assert . AreEqual ( 1 , tokens [ 1 ] . Length ) ;
688+
689+ Assert . AreEqual ( "e" , tokens [ 2 ] . Value ) ;
690+ Assert . AreEqual ( 2 , tokens [ 2 ] . StartPosition ) ;
691+ Assert . AreEqual ( 1 , tokens [ 2 ] . Length ) ;
692+ }
693+
694+ [ TestMethod ]
695+ public void TestTokenReader34 ( )
696+ {
697+ var reader = new TokenReader < double > ( CultureInfo . InvariantCulture , DoubleNumericalOperations . Instance ) ;
698+ List < Token > tokens = reader . Read ( "1+e" ) ;
699+
700+ Assert . AreEqual ( 3 , tokens . Count ) ;
701+
702+ Assert . AreEqual ( 1 , tokens [ 0 ] . Value ) ;
703+ Assert . AreEqual ( 0 , tokens [ 0 ] . StartPosition ) ;
704+ Assert . AreEqual ( 1 , tokens [ 0 ] . Length ) ;
705+
706+ Assert . AreEqual ( '+' , tokens [ 1 ] . Value ) ;
707+ Assert . AreEqual ( 1 , tokens [ 1 ] . StartPosition ) ;
708+ Assert . AreEqual ( 1 , tokens [ 1 ] . Length ) ;
709+
710+ Assert . AreEqual ( "e" , tokens [ 2 ] . Value ) ;
711+ Assert . AreEqual ( 2 , tokens [ 2 ] . StartPosition ) ;
712+ Assert . AreEqual ( 1 , tokens [ 2 ] . Length ) ;
713+ }
714+
715+ [ TestMethod ]
716+ public void TestTokenReader35 ( )
717+ {
718+ AssertExtensions . ThrowsException < ParseException > ( ( ) =>
719+ {
720+ var reader = new TokenReader < double > ( CultureInfo . InvariantCulture , DoubleNumericalOperations . Instance ) ;
721+ List < Token > tokens = reader . Read ( "2.11E-e3" ) ;
722+ } ) ;
723+ }
724+
725+ [ TestMethod ]
726+ public void TestTokenReader36 ( )
727+ {
728+ AssertExtensions . ThrowsException < ParseException > ( ( ) =>
729+ {
730+ var reader = new TokenReader < double > ( CultureInfo . InvariantCulture , DoubleNumericalOperations . Instance ) ;
731+ List < Token > tokens = reader . Read ( "2.11E-e" ) ;
732+ } ) ;
733+ }
734+
735+ [ TestMethod ]
736+ public void TestTokenReader37 ( )
737+ {
738+ AssertExtensions . ThrowsException < ParseException > ( ( ) =>
739+ {
740+ var reader = new TokenReader < double > ( CultureInfo . InvariantCulture , DoubleNumericalOperations . Instance ) ;
741+ List < Token > tokens = reader . Read ( "3e" ) ;
742+ } ) ;
743+ }
655744 }
656745}
0 commit comments