Exemplo n.º 1
0
 def test_that_apparent_wind_speed_is_returned_correctly_from_IIVWR(self):
     vessel = Vessel()
     expected = 35.0
     nmea_string = '$IIVWR,44.8,L,35.0,N,18.0,M,64.9,K*5B'
     vessel.NMEAInput(nmea_string)
     actual = vessel.AWS
     self.assertEqual(expected, actual)
Exemplo n.º 2
0
 def test_that_sog_is_returned_correctly_from_IIVTG(self):
     vessel = Vessel()
     expected = 9.9
     nmea_string = '$IIVTG,309.90,T,310.90,M,9.9,N,18.3,K,A*06'
     vessel.NMEAInput(nmea_string)
     actual = vessel.sog
     self.assertEqual(expected, actual)
Exemplo n.º 3
0
 def test_vessel_correctly_reports_boat_speed_from_IIVHW(self):
     vessel = Vessel()
     expected = 9.5
     nmea_string = '$IIVHW,298.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     actual = vessel.boat_speed_knots
     self.assertEqual(expected, actual)
Exemplo n.º 4
0
 def test_that_true_wind_speed_is_returned_correctly_from_IIVWT(self):
     vessel = Vessel()
     expected = 27.8
     nmea_string = '$IIVWT,59.0,L,27.8,N,14.3,M,51.6,K*54'
     vessel.NMEAInput(nmea_string)
     actual = vessel.TWS
     self.assertEqual(expected, actual)
Exemplo n.º 5
0
 def test_vessel_correctly_reports_magnetic_heading_from_IIVHW(self):
     vessel = Vessel()
     expected = 301.0
     nmea_string = '$IIVHW,298.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     actual = vessel.heading_mag
     self.assertEqual(expected, actual)
Exemplo n.º 6
0
 def test_vessel_correctly_converts_east_longitude_from_IIGLL(self):
     vessel = Vessel()
     expected = 1.11689
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,E,162649.99,A,3*18'
     vessel.NMEAInput(nmea_string)
     actual = vessel.longitude
     self.assertEqual(expected, actual)
Exemplo n.º 7
0
 def test_vessel_correctly_sets_timestamp_from_IIGLL(self):
     vessel = Vessel()
     expected = datetime.strptime('162649.99', '%H%M%S.%f')
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,W,162649.99,A,3*18'
     vessel.NMEAInput(nmea_string)
     actual = vessel.time
     self.assertEqual(expected, actual)
Exemplo n.º 8
0
 def test_vessel_correctly_converts_south_latitude_from_IIGLL(self):
     vessel = Vessel()
     expected = -50.78984
     nmea_string = '$IIGLL,5047.3904,S,00107.0134,W,162649.99,A,3*18'
     vessel.NMEAInput(nmea_string)
     actual = vessel.latitude
     self.assertEqual(expected, actual)
Exemplo n.º 9
0
 def test_that_date_is_updated_if_GPRMC_is_present(self):
     vessel = Vessel()
     expected = datetime.strptime('190317', '%d%m%y')
     nmea_string = \
         '$GPRMC,150558.00,A,5040.73877,N,00058.58538,W,9.712,124.01,190317,,,A*75'
     vessel.NMEAInput(nmea_string)
     actual = vessel.date
     self.assertEqual(expected, actual)
Exemplo n.º 10
0
 def test_that_rudder_is_returned_correctly_from_IIXDR(self):
     vessel = Vessel()
     expected = 8.0
     nmea_string = \
         '$IIXDR,A,33.8,D,HEEL,A,11.2,D,TRIM,P,1.005,B,BAROIIXDR,A,8.0,D,RUDDER*4E'
     vessel.NMEAInput(nmea_string)
     actual = vessel.rudder
     self.assertEqual(expected, actual)
Exemplo n.º 11
0
 def test_that_log_distance_is_returned_correctly_from_IIVLM(self):
     vessel = Vessel()
     expected = 10
     nmea_string = '$IIVLW,12220.52,N,0.00,N*49'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVLW,12230.52,N,0.00,N*49'
     vessel.NMEAInput(nmea_string)
     actual = vessel.log_distance
     self.assertEqual(expected, actual)
Exemplo n.º 12
0
 def test_that_no_change_boat_speed_indicator_is_returned_correctly(self):
     vessel = Vessel()
     expected = ''
     nmea_string = '$IIVHW,298.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVHW,298.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     actual = vessel.boat_speed_indicator
     self.assertEqual(expected, actual)
Exemplo n.º 13
0
 def test_vessel_correctly_calculates_TWD_calc_2(self):
     vessel = Vessel()
     nmea_string = '$IIVHW,348.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVTG,10,T,310.90,M,9.9,N,18.3,K,A*06'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVWR,44.8,R,35.0,N,18.0,M,64.9,K*5B'
     vessel.NMEAInput(nmea_string)
     expected = 31.5
     actual = vessel.TWA_calc
     self.assertEqual(expected, actual)
Exemplo n.º 14
0
 def test_vessel_correctly_calculates_AWD_is_negative(self):
     vessel = Vessel()
     #heading = 38.2
     nmea_string = '$IIVHW,38.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     #AWA = -44.8
     nmea_string = '$IIVWR,44.8,L,35.0,N,18.0,M,64.9,K*5B'
     vessel.NMEAInput(nmea_string)
     #AWD = H + AWA
     expected = 353.4
     actual = vessel.AWD
     self.assertEqual(expected, actual)
Exemplo n.º 15
0
 def test_vessel_correctly_calculates_AWD(self):
     vessel = Vessel()
     #heading = 298.2
     nmea_string = '$IIVHW,298.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     #AWA = 44.8
     nmea_string = '$IIVWR,44.8,R,35.0,N,18.0,M,64.9,K*5B'
     vessel.NMEAInput(nmea_string)
     #AWD = H + AWA = 343
     expected = 343
     actual = vessel.AWD
     self.assertEqual(expected, actual)
Exemplo n.º 16
0
 def test_vessel_correctly_calculates_AWD_when_result_greater_then_360(
         self):
     vessel = Vessel()
     #heading = 348.2
     nmea_string = '$IIVHW,348.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     #AWA = 44.8
     nmea_string = '$IIVWR,44.8,R,35.0,N,18.0,M,64.9,K*5B'
     vessel.NMEAInput(nmea_string)
     #AWD = H + AWA - 360
     expected = 33
     actual = vessel.AWD
     self.assertEqual(expected, actual)
Exemplo n.º 17
0
 def test_that_boat_speed_list_is_maintained_correctly(self):
     vessel = Vessel()
     expected = 2
     #Outside time limit
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,W,162649.00,A,3*18'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVHW,298.2,T,301.0,M,100,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     #Inside time limit
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,W,162650.00,A,3*18'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVHW,298.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,W,162700.00,A,3*18'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVHW,298.2,T,301.0,M,10.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     actual = len(vessel.boat_speed_list)
     self.assertEqual(expected, actual)
Exemplo n.º 18
0
 def test_that_a_ten_second_average_boat_speed_is_calculated_correctly(
         self):
     vessel = Vessel()
     expected = 10
     #Outside time limit
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,W,162649.00,A,3*18'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVHW,298.2,T,301.0,M,100,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     #Inside time limit
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,W,162650.00,A,3*18'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVHW,298.2,T,301.0,M,9.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIGLL,5047.3904,N,00107.0134,W,162700.00,A,3*18'
     vessel.NMEAInput(nmea_string)
     nmea_string = '$IIVHW,298.2,T,301.0,M,10.5,N,17.5,K*69'
     vessel.NMEAInput(nmea_string)
     actual = vessel.boat_speed_avg
     self.assertEqual(expected, actual)
Exemplo n.º 19
0
 def test_that_today_is_used_as_defualt_date_at_init(self):
     vessel = Vessel()
     expected = date.today()
     actual = vessel.date
     self.assertEqual(expected, actual)
Exemplo n.º 20
0
import datetime
import sys
import os
import modules.navigation as nav
from modules.vessel import Vessel
from modules.vessel import FileAccessWrapper
from race_details.RORC_De_Guingand_Bowl_Race_2017.course_details \
        import CourseDetails

course = CourseDetails().course
polar_file = FileAccessWrapper('modules/process/inter_polar.csv')
vessel = Vessel(polar_file)


def clear_terminal():
    print(chr(27) + "[2J")  #Clear terminal


def print_there(x, y, text):
    sys.stdout.write("\x1b7\x1b[%d;%df%s\x1b8" % (x, y, text))
    #sys.stdout.flush()


def print_course_details(anchor, course):

    clear_terminal()

    waypoint_count = len(course.waypoints)
    #Get column widths
    name_width = 0
    for key, value in course.waypoints.items():
Exemplo n.º 21
0
 def test_that_vessel_excepts_a_NMEA_string(self):
     vessel = Vessel()
     expected = 'abcd'
     vessel.NMEAInput(expected)
     actual = vessel.LastNmeaInput
     self.assertEqual(expected, actual)