Exemplo n.º 1
0
def test_alpha():
	assert tcommon.telnet() == True
	for x in range(0, 10):
		prefix = tcommon.getRandStr(chars=string.ascii_uppercase + string.ascii_lowercase)
		assert common.sendData('CREATE "{}/obj"'.format(prefix)) == ["OK"] # create empty object
		assert common.sendData('DELETE "{}/obj"'.format(prefix)) == ["OK"] # destroy object
		assert common.sendData('DELETE "{}"'.format(prefix)) == ["OK"] # destroy container
Exemplo n.º 2
0
def test_config():
    assert common.sendData(
        '"Config.instance" SET assetBundlesCache "/tmp/"') == ["OK"]
    assert common.sendData(
        '"Config.instance" SET databaseFolderPath "/tmp/"') == ["OK"]
    assert common.sendData('"Config.instance" SET physicsEnabled false') == [
        "OK"
    ]
Exemplo n.º 3
0
def setConfig(path=None, databasePath=None, physics=False):
    common.sendData([
        '"Config.instance" SET assetBundlesCache "{}"'.format(
            settings.assets if path == None else path),
        '"Config.instance" SET databaseFolderPath "{}"'.format(
            settings.assets if databasePath == None else databasePath),
        '"Config.instance" SET physicsEnabled {}'.format('false' if physics ==
                                                         False else 'true')
    ])
Exemplo n.º 4
0
def test_space_nested():
	for x in range(0, 10):
		root = tcommon.getRandStr(chars=' ')
		prefix = root
		
		for i in range(0, 32):
			prefix += '/{}'.format(tcommon.getRandStr(chars=' '))
		
		assert common.sendData('CREATE "{}/obj"'.format(prefix)) == ["OK"] # create empty object
		assert common.sendData('DELETE "{}/obj"'.format(prefix)) == ["OK"] # destroy object
		assert common.sendData('DELETE "{}"'.format(prefix)) == ["OK"] # destroy container
Exemplo n.º 5
0
def test_disk_export_setup(width, height, gprefix):
    assert tcommon.telnet() == True
    objs[gprefix] = [gprefix]
    fns[gprefix] = []
    objs[gprefix].append('{}/disk1'.format(gprefix))
    assert common.sendData('CREATE "{}/disk1"'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/disk1" SET active false'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/disk1" ADD Sensors.Disk'.format(gprefix)) == ["OK"]
    assert common.sendData('"{}/disk1" SET Sensors.Disk path "{}"'.format(
        gprefix, settings.output_path)) == ["OK"]
def test_localscale_int():
    prefix = tcommon.getRandStr()
    assert tcommon.telnet() == True
    assert common.sendData(
        'CREATE "{}/obj"'.format(prefix)) == ["OK"]  # create empty object
    assert common.sendData(
        '"{}/obj" SET Transform localScale (0 32000 65000)'.format(
            prefix)) == ["OK"]  # set object scale
    assert common.sendData(
        '"{}/obj" GET Transform localScale'.format(prefix)) == [
            '[0.0,32000.0,65000.0]', "OK"
        ]  # get object scale
    assert common.sendData(
        'DELETE "{}"'.format(prefix)) == ["OK"]  # destroy object
def test_localscale_float():
    prefix = tcommon.getRandStr()
    assert tcommon.telnet() == True
    assert common.sendData(
        'CREATE "{}/obj"'.format(prefix)) == ["OK"]  # create empty object
    assert common.sendData(
        '"{}/obj" SET Transform localScale (-6.101 1.101 -50.101)'.format(
            prefix)) == ["OK"]  # set object scale
    assert common.sendData(
        '"{}/obj" GET Transform localScale'.format(prefix)) == [
            '[-6.101,1.101,-50.101]', "OK"
        ]  # get object scale
    assert common.sendData(
        'DELETE "{}"'.format(prefix)) == ["OK"]  # destroy object
Exemplo n.º 8
0
def test_localeulerangles_float():
    prefix = tcommon.getRandStr()
    assert tcommon.telnet() == True
    assert common.sendData(
        'CREATE "{}/obj"'.format(prefix)) == ["OK"]  # create empty object
    assert common.sendData(
        '"{}/obj" SET Transform eulerAngles (0 0 0) localEulerAngles (-6.101 1.101 -50.101)'
        .format(prefix)) == ["OK"]  # set object eulerAngles
    assert common.sendData(
        '"{}/obj" GET Transform localEulerAngles'.format(prefix)) == [
            '[353.899,1.101,309.899]', "OK"
        ]  # get object eulerAngles
    assert common.sendData(
        'DELETE "{}"'.format(prefix)) == ["OK"]  # destroy object
Exemplo n.º 9
0
def test_eulerangles_int():
    prefix = tcommon.getRandStr()
    assert tcommon.telnet() == True
    assert common.sendData(
        'CREATE "{}/obj"'.format(prefix)) == ["OK"]  # create empty object
    assert common.sendData(
        '"{}/obj" SET Transform eulerAngles (0 90 180)'.format(prefix)) == [
            "OK"
        ]  # set object eulerAngles
    assert common.sendData(
        '"{}/obj" GET Transform eulerAngles'.format(prefix)) == [
            '[0.0,90.0,180.0]', "OK"
        ]  # get object eulerAngles
    assert common.sendData(
        'DELETE "{}"'.format(prefix)) == ["OK"]  # destroy object
Exemplo n.º 10
0
def test_create_del_longnames_nested():
	root = tcommon.getRandStr(size=65)
	
	for x in range(0, 10):
		prefix = root
		
		# create 32 nested levels, each one with a 65 char length empty object name
		for i in range(0, 32):
			prefix += '/{}'.format(tcommon.getRandStr(size=65))
		
		assert common.sendData('CREATE "{}/obj"'.format(prefix)) == ["OK"] # create empty object
		assert common.sendData('DELETE "{}/obj"'.format(prefix)) == ["OK"] # destroy object
		assert common.sendData('DELETE "{}"'.format(prefix)) == ["OK"] # destroy container
	
	assert common.sendData('DELETE "{}"'.format(root)) == ["OK"] # destroy root container
Exemplo n.º 11
0
def test_disk_export_segmentation_setup(width, height, gprefix):
    objs[gprefix].append('{}/disk1/cameras/segmentation'.format(gprefix))
    assert common.sendData(
        'CREATE "{}/disk1/cameras/segmentation"'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/disk1/cameras/segmentation" ADD Sensors.RenderCameraLink'.format(
            gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/disk1/cameras/segmentation" SET Sensors.RenderCameraLink target "{}/cameras/segmentation"'
        .format(gprefix, gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/disk1/cameras/segmentation" SET active true'.format(gprefix)) == [
            "OK"
        ]
    assert common.sendData(
        '"{}/disk1" SET active true'.format(gprefix)) == ["OK"]
Exemplo n.º 12
0
def test_rgb_export(width, height, gprefix):
    assert common.sendData([
        '"{}/disk1" EXECUTE Sensors.Disk Snapshot'.format(gprefix), 'NOOP'
    ]) == ["OK",
           "OK"]  # take a screenshot and make sure it's written by NOOPing
    fn = os.path.join(settings.output_path, '1_cameras_camerargb.jpg')
    assert os.path.exists(fn) == True  # check if file exists
    fns[gprefix].append(fn)
    sf = os.stat(fn)
    assert (sf.st_size > 0) == True  # check if file is more than zero bytes
    assert len(tcommon.imageColors(
        fn)) == 1  # check if there's only one col or on the image
    assert tcommon.imageSize(fn) == (width, height)  # check export image size

    cleanup(gprefix)
Exemplo n.º 13
0
def cleanup(objs, fns=[]):
    objs.sort(key=lambda x: len(x), reverse=True)

    for obj in objs:
        common.output('Removing object `{}`'.format(obj), 'DEBUG')
        if common.sendData('DELETE "{}"'.format(obj)) != ["OK"]:
            return False

    for fn in fns:
        if os.path.exists(fn):
            common.output('Removing file `{}`'.format(fn), 'DEBUG')
            try:
                os.remove(fn)
            except:
                pass

    return True
Exemplo n.º 14
0
def test_camera_rgb_setup(width, height, gprefix):
    objs[gprefix].append('{}/cameras/cameraRGB'.format(gprefix))
    assert common.sendData(
        'CREATE "{}/cameras/cameraRGB"'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/cameraRGB" SET active false'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/cameraRGB" ADD Camera Sensors.RenderCamera'.format(
            gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/cameraRGB" SET Camera near 0.3 far 1000 fieldOfView 60 renderingPath "UsePlayerSettings"'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/cameraRGB" SET Sensors.RenderCamera format "ARGB32" resolution ({} {})'
        .format(gprefix, width, height)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/cameraRGB" SET active true'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/cameraRGB" SET Camera enabled true'.format(gprefix)) == [
            "OK"
        ]
Exemplo n.º 15
0
def test_torus():
    prefix = tcommon.getRandStr()
    assert tcommon.telnet() == True

    assert common.sendData(
        'CREATE "{}/spawner/drone/container"'.format(prefix)) == ["OK"]
    assert common.sendData(
        '"{}/spawner/drone/container" SET active false'.format(prefix)) == [
            "OK"
        ]
    assert common.sendData(
        '"{}/spawner/drone/container" ADD RandomProps.Torus'.format(
            prefix)) == ["OK"]
    assert common.sendData(
        '"{}/spawner/drone/container" ADD RandomProps.PropArea'.format(
            prefix)) == ["OK"]
    assert common.sendData(
        '"{}/spawner/drone/container" SET RandomProps.PropArea tags "drone"'.
        format(prefix)) == ["OK"]
    assert common.sendData(
        '"{}/spawner/drone/container" SET RandomProps.PropArea async false numberOfProps 25 collisionCheck false stickToGround false'
        .format(prefix)) == ["OK"]
    assert common.sendData(
        '"{}/spawner/drone/container" SET RandomProps.Torus radius 10 innerRadius 0'
        .format(prefix)) == ["OK"]
    assert common.sendData(
        '"{}/spawner/drone/container" SET Transform position (0 0 0) eulerAngles (0 0 0) localScale (1 1 1)'
        .format(prefix)) == ["OK"]
    assert common.sendData(
        '"{}/spawner/drone/container" SET active true'.format(prefix)) == [
            "OK"
        ]
    assert common.sendData(
        '"{}/spawner/drone" SET active true'.format(prefix)) == ["OK"]

    assert common.sendData(
        'DELETE "{}"'.format(prefix)) == ["OK"]  # destroy container
Exemplo n.º 16
0
def test_camera_segmentation_setup(width, height, gprefix):
    objs[gprefix].append('{}/cameras/segmentation'.format(gprefix))
    assert common.sendData(
        'CREATE "{}/cameras/segmentation"'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras" SET Transform position (-6 1 -15) eulerAngles (0 0 0)'.
        format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" SET active false'.format(gprefix)) == [
            "OK"
        ]
    assert common.sendData(
        '"{}/cameras/segmentation" ADD Camera SegmentationCamera Segmentation.Output.BoundingBoxes Segmentation.Output.ClassColors Sensors.RenderCamera'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" SET Camera near 0.3 far 1000 fieldOfView 60 renderingPath "UsePlayerSettings"'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" SET Sensors.RenderCamera format "ARGB32" resolution ({} {})'
        .format(gprefix, width, height)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" SET Segmentation.Output.BoundingBoxes minimumObjectVisibility 0 extensionAmount 0 minimumPixelsCount 1'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" EXECUTE Segmentation.Output.ClassColors lookUpTable.SetClassColor "Car->red" "Drone->blue"'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" ADD Segmentation.Output.FilteredBoundingBoxes'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" EXECUTE Segmentation.Output.FilteredBoundingBoxes EnableClasses "Car" "Drone"'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" SET active true'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/cameras/segmentation" SET Camera enabled true'.format(
            gprefix)) == ["OK"]
Exemplo n.º 17
0
def test_segmentation_export(width, height, gprefix):
    # create objects
    assert common.sendData(
        'CREATE "Cars/VW_Golf_V/VW_Golf_V" FROM "cars" AS "{}/obj/subject0"'.
        format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj" SET active false'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject0" SET Transform position (0 0 0) eulerAngles (0 0 0)'.
        format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject0" ADD Segmentation.Entity Segmentation.Class'.format(
            gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject0" SET Segmentation.Class className "Car"'.format(
            gprefix)) == ["OK"]
    assert common.sendData(
        'CREATE "Drones/DJI_Phantom_4_Pro/DJI_Phantom_4_Pron" FROM "drones" AS "{}/obj/subject1"'
        .format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj" SET active false'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject1" SET Transform position (0 2 0) eulerAngles (0 0 0)'.
        format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject1" ADD Segmentation.Entity Segmentation.Class'.format(
            gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject1" SET Segmentation.Class className "Drone"'.format(
            gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj" SET Transform position (-6 0 -9) eulerAngles (0 0 0)'.format(
            gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj" SET active true'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject0" SET active true'.format(gprefix)) == ["OK"]
    assert common.sendData(
        '"{}/obj/subject1" SET active true'.format(gprefix)) == ["OK"]
    # take screenshot
    assert common.sendData([
        '"{}/disk1" EXECUTE Sensors.Disk Snapshot'.format(gprefix), 'NOOP'
    ]) == ["OK",
           "OK"]  # take a screenshot and make sure it's written by NOOPing
    objs[gprefix].append("{}/obj".format(gprefix))
    fn = os.path.join(settings.output_path, '1_cameras_segmentation.jpg')
    assert os.path.exists(fn) == True  # check if file exists
    fns[gprefix].append(fn)
    sf = os.stat(fn)
    assert (sf.st_size > 0) == True  # check if file is more than zero bytes
    assert tcommon.imageColors(
        fn) == None  # check if there's more than 256 colors on the image
    assert tcommon.imageSize(fn) == (width, height)  # check export image size
    output = common.sendData(
        '"{}/cameras/segmentation" GET Segmentation.Output.BoundingBoxes boundingBoxes'
        .format(gprefix),
        read=True)
    assert len(output) == 2  # output length
    output[0] = re.sub('"id":\d+,', '', output[0])
    assert output == [
        '[{"classId":1,"numPoints":43268,"boxMin":[0.3773216, 0.3116036],"boxMax":[0.6226784, 0.6036506],"visibility":"Infinity"},{"classId":2,"numPoints":425,"boxMin":[0.4770283, 0.6440678],"boxMax":[0.5229716, 0.6779661],"visibility":"Infinity"}]',
        "OK"
    ]

    cleanup(gprefix)
Exemplo n.º 18
0
def test_digits_long():
	for x in range(0, 10):
		prefix = tcommon.getRandStr(size=257, chars=string.digits)
		assert common.sendData('CREATE "{}/obj"'.format(prefix)) == ["OK"] # create empty object
		assert common.sendData('DELETE "{}/obj"'.format(prefix)) == ["OK"] # destroy object
		assert common.sendData('DELETE "{}"'.format(prefix)) == ["OK"] # destroy container
Exemplo n.º 19
0
def test_create_del_longnames():
	for x in range(0, 10):
		prefix = tcommon.getRandStr(size=257)
		assert common.sendData('CREATE "{}/obj"'.format(prefix)) == ["OK"] # create empty object
		assert common.sendData('DELETE "{}/obj"'.format(prefix)) == ["OK"] # destroy object
		assert common.sendData('DELETE "{}"'.format(prefix)) == ["OK"] # destroy container