def test4(self):
        'scalar * range w open lbound'
        ae = self.assertEquals

        theTypeId = globalTypeTable.getType(RealStmt([],[],['x']),theSymtab)
        theSymtab.enter_name('x',SymtabEntry(SymtabEntry.VariableEntryKind, type=RealStmt,typetab_id=theTypeId))
        stmt = 'real, dimension(2,3) :: y'
        ps = pps(stmt)
        theTypeId = globalTypeTable.getType(ps,theSymtab)
        theSymtab.enter_name('y', SymtabEntry(SymtabEntry.VariableEntryKind,
                                              type=RealStmt,
                                              dimensions=['2','3'],
                                              typetab_id=theTypeId))
        e1 = ep('x * y(1,:2)')
        ae(str(expressionShape(e1,theSymtab,lineNumber=0)),
           str([Ops(':','1','2')]))
    def test1(self):
        'scalar * subscripted array'
        ae = self.assertEquals

        theTypeId = globalTypeTable.getType(RealStmt([],[],['x']),theSymtab)
        theSymtab.enter_name('x',SymtabEntry(SymtabEntry.VariableEntryKind, type=RealStmt,typetab_id=theTypeId))
        stmt = 'real, dimension(2,3) :: y'
        ps = pps(stmt)
        theTypeId = globalTypeTable.getType(ps,theSymtab)
        theSymtab.enter_name('y', SymtabEntry(SymtabEntry.VariableEntryKind,
                                              type=RealStmt,
                                              dimensions=['2','3'],
                                              typetab_id=theTypeId))
        e1 = ep('x * y(1,:)')
        ae(expressionShape(e1,theSymtab,lineNumber=0),
           ['3'])