import unittest
import logging
logger = logging.getLogger(__name__)



def noPrint(param):
	print(param)
	return param

def noInput(param):
	print(param)
	c=raw_input()
	return c

IO = {
'print' : noPrint,
'input' : noInput
}

def noAdd(param):
	#the only real choice
	if isinstance(param,tuple) and \
	   len(param) == 2 and \
	   isinstance(param[0],int) and \
	   isinstance(param[2],int):
		return param[0] + param[1]
	if isinstance(param,list) and param:
		accum = param[0]
		for current in param[1:]:
			accum = noAdd((accum,current))
		return accum
	raise Exception("unsupported parameter on add(%s)"%param)

MATH = {
'add':noAdd
}

def noTrim(param):
	if isinstance(param,str):
		return param.strip()
	raise Exception("unsupported parameter on trim(%s)"%param)

STRING = {
'trim':noTrim
}

class test(unittest.TestCase):
	def setUp(self):
		pass

	def test_something(self):
		self.assertTrue(True)

	def test_trim(self):
		self.assertEqual('sstring',noTrim("  sstring  "))

if __name__ == '__main__':
    logging.basicConfig(filename=__name__+'.log', filemode='w', level=logging.DEBUG)
    unittest.main()

