#!/usr/bin/env python

#
#    File:    pyNetrekTest.py
#    Version: 0.1
#    Date:    2007/03/04 19:52:26 EST
#    Desc:    Unit testing for pyNetrek functions
#
#    William U. Clark, Jr. <netrek@wuclark.com>
#

import random
import unittest

import pyNetrek.server.tools.setship as setship

class TestSetship(unittest.TestCase):

  def setUp(self):
    self.seq = range(10)

  # @def decode(text)
  # @param text The string to decode.
  def testPos(self):
    setship.setSpd(0,0)
    setship.sleep(6)
    p_x = random.randint(1, 100000) 
    p_y = random.randint(1, 100000)
    #p_x = 50000
    #p_y = 500
    setship.setPos(0,p_x,p_y)
    setship.sleep(1)
    resultPos = setship.getPos(0)
    print "Testing Position",p_x, p_y, resultPos['p_x'], resultPos['p_y']
    #print resultPos['p_x']
    self.assertEqual( (abs(resultPos['p_x']-p_x) + abs(resultPos['p_y']-p_y)) , 0 )


  def testDis(self):
    setship.setSpd(0,0)
    d = random.randint(1, 255) 
    setship.setDir(0,d)
    setship.sleep(6)
    resultDir = setship.getDir(0)
    print "Testing Direction ", d, resultDir
    self.assertEqual( (resultDir - d) , 0 )

  def testSpd(self):
    s = random.randint(1, 8) 
    print setship.setSpd(0,s)
    #d = random.randint(1, 255) 
    setship.sleep(6)
    resultSpd = setship.getSpd(0)
    print "Testing Speed ", s, resultSpd
    self.assertEqual( (resultSpd - s) , 0 )

  def testWaitForStop(self):
    s = random.randint(1, 8) 
    print setship.setSpd(0,s)
    setship.sleep(6)
    print setship.setSpd(0,0)
    setship.waitForStop(0)
    resultSpd = setship.getSpd(0)
    print "Waiting for stop ", s, resultSpd
    self.assertEqual( resultSpd , 0 )


if __name__ == '__main__':
  unittest.main()

