PPArithmeticParserTest.st
changeset 0 739fe9b7253e
child 4 90de244a7fa2
equal deleted inserted replaced
-1:000000000000 0:739fe9b7253e
       
     1 "{ Package: 'squeak:petitparser' }"
       
     2 
       
     3 PPCompositeParserTest subclass:#PPArithmeticParserTest
       
     4 	instanceVariableNames:''
       
     5 	classVariableNames:''
       
     6 	poolDictionaries:''
       
     7 	category:'PetitTests-Tests'
       
     8 !
       
     9 
       
    10 
       
    11 !PPArithmeticParserTest methodsFor:'accessing'!
       
    12 
       
    13 parserClass
       
    14 	^ PPArithmeticParser
       
    15 ! !
       
    16 
       
    17 !PPArithmeticParserTest methodsFor:'testing'!
       
    18 
       
    19 testNum
       
    20 	self assert: '0' is: 0.
       
    21 	self assert: '0.0' is: 0.0.
       
    22 	self assert: '1' is: 1.
       
    23 	self assert: '1.2' is: 1.2.
       
    24 	self assert: '34' is: 34.
       
    25 	self assert: '56.78' is: 56.78.
       
    26 	self assert: '-9' is: -9.
       
    27 	self assert: '-9.9' is: -9.9
       
    28 ! !
       
    29 
       
    30 !PPArithmeticParserTest methodsFor:'testing-expression'!
       
    31 
       
    32 testBrackets
       
    33 	self assert: '(1)' is: 1.
       
    34 	self assert: '(1 + 2)' is: 3.
       
    35 	
       
    36 	self assert: '((1))' is: 1.
       
    37 	self assert: '((1 + 2))' is: 3.
       
    38 
       
    39 	self assert: '2 * (3 + 4)' is: 14.
       
    40 	self assert: '(2 + 3) * 4' is: 20.
       
    41 	self assert: '6 / (2 + 4)' is: 1.
       
    42 	self assert: '(2 + 6) / 2' is: 4
       
    43 !
       
    44 
       
    45 testPriority
       
    46 	self assert: '2 * 3 + 4' is: 10.
       
    47 	self assert: '2 + 3 * 4' is: 14.
       
    48 	self assert: '6 / 3 + 4' is: 6.
       
    49 	self assert: '2 + 6 / 2' is: 5
       
    50 ! !
       
    51 
       
    52 !PPArithmeticParserTest methodsFor:'testing-operations'!
       
    53 
       
    54 testAdd
       
    55 	self assert: '1 + 2' is: 3.
       
    56 	self assert: '2 + 1' is: 3.
       
    57 	self assert: '1 + 2.3' is: 3.3.
       
    58 	self assert: '2.3 + 1' is: 3.3.
       
    59 	self assert: '1 + -2' is: -1.
       
    60 	self assert: '-2 + 1' is: -1
       
    61 !
       
    62 
       
    63 testAddMany
       
    64 	self assert: '1' is: 1.
       
    65 	self assert: '1 + 2' is: 3.
       
    66 	self assert: '1 + 2 + 3' is: 6.
       
    67 	self assert: '1 + 2 + 3 + 4' is: 10.
       
    68 	self assert: '1 + 2 + 3 + 4 + 5' is: 15
       
    69 !
       
    70 
       
    71 testDiv
       
    72 	self assert: '12 / 3' is: 4.
       
    73 	self assert: '-16 / -4' is: 4
       
    74 !
       
    75 
       
    76 testDivMany
       
    77 	self assert: '100 / 2' is: 50.
       
    78 	self assert: '100 / 2 / 2' is: 25.
       
    79 	self assert: '100 / 2 / 2 / 5' is: 5.
       
    80 	self assert: '100 / 2 / 2 / 5 / 5' is: 1
       
    81 	
       
    82 !
       
    83 
       
    84 testMul
       
    85 	self assert: '2 * 3' is: 6.
       
    86 	self assert: '2 * -4' is: -8
       
    87 !
       
    88 
       
    89 testMulMany
       
    90 	self assert: '1 * 2' is: 2.
       
    91 	self assert: '1 * 2 * 3' is: 6.
       
    92 	self assert: '1 * 2 * 3 * 4' is: 24.
       
    93 	self assert: '1 * 2 * 3 * 4 * 5' is: 120
       
    94 !
       
    95 
       
    96 testPow
       
    97 	self assert: '2 ^ 3' is: 8.
       
    98 	self assert: '-2 ^ 3' is: -8.
       
    99 	self assert: '-2 ^ -3' is: -0.125
       
   100 !
       
   101 
       
   102 testPowMany
       
   103 	self assert: '4 ^ 3' is: 64.
       
   104 	self assert: '4 ^ 3 ^ 2' is: 262144.
       
   105 	self assert: '4 ^ 3 ^ 2 ^ 1' is: 262144.
       
   106 	self assert: '4 ^ 3 ^ 2 ^ 1 ^ 0' is: 262144
       
   107 !
       
   108 
       
   109 testSub
       
   110 	self assert: '1 - 2' is: -1.
       
   111 	self assert: '1.2 - 1.2' is: 0.
       
   112 	self assert: '1 - -2' is: 3.
       
   113 	self assert: '-1 - -2' is: 1
       
   114 !
       
   115 
       
   116 testSubMany
       
   117 	self assert: '1' is: 1.
       
   118 	self assert: '1 - 2' is: -1.
       
   119 	self assert: '1 - 2 - 3' is: -4.
       
   120 	self assert: '1 - 2 - 3 - 4' is: -8.
       
   121 	self assert: '1 - 2 - 3 - 4 - 5' is: -13
       
   122 ! !
       
   123 
       
   124 !PPArithmeticParserTest class methodsFor:'documentation'!
       
   125 
       
   126 version_SVN
       
   127     ^ '$Id: PPArithmeticParserTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $'
       
   128 ! !