Skip to content

Commit 5b80907

Browse files
Fixed unit tests
1 parent 2c0f71b commit 5b80907

File tree

7 files changed

+32
-225
lines changed

7 files changed

+32
-225
lines changed

Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ RUN apt-get install -y build-essential \
1515
python \
1616
python3-pip \
1717
libyaml-cpp-dev \
18-
xsltproc
18+
xsltproc \
19+
libcairo2-dev
1920
RUN apt-get install -y libgazebo9-dev gazebo9
2021
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
2122

pyrevolve/revolve_bot/brain/base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ class Brain(object):
77
def from_yaml(yaml_brain):
88
brain_type = yaml_brain['type']
99

10-
if brain_type == 'neural-network':
10+
if brain_type == pyrevolve.revolve_bot.brain.BrainNN.TYPE:
1111
return pyrevolve.revolve_bot.brain.BrainNN.from_yaml(yaml_brain)
12-
elif brain_type == 'rlpower-splines':
12+
elif brain_type == pyrevolve.revolve_bot.brain.BrainRLPowerSplines.TYPE:
1313
return pyrevolve.revolve_bot.brain.BrainRLPowerSplines.from_yaml(yaml_brain)
1414
else:
1515
return Brain()

pyrevolve/revolve_bot/brain/brain_nn.py

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class BrainNN(Brain):
1111
"""
1212
Base class allowing for constructing neural network controller components in an overviewable manner
1313
"""
14+
TYPE = 'neural-network'
1415

1516
def __init__(self):
1617
self.nodes = {}
@@ -51,6 +52,7 @@ def from_yaml(yaml_object):
5152

5253
def to_yaml(self):
5354
yaml_dict_brain = OrderedDict()
55+
yaml_dict_brain['type'] = self.TYPE
5456

5557
yaml_dict_neurons = OrderedDict()
5658
for node in self.nodes:

pyrevolve/revolve_bot/brain/rlpower_splines.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@
33

44

55
class BrainRLPowerSplines(Brain):
6+
TYPE = 'rlpower-splines'
67

78
@staticmethod
89
def from_yaml(yaml_object):
910
return BrainRLPowerSplines()
1011

1112
def to_yaml(self):
12-
return {}
13+
return {
14+
'type': self.TYPE
15+
}
1316

1417
def learner_sdf(self):
1518
return xml.etree.ElementTree.Element('rv:learner', {'type': 'rlpower'})

test_py/generate/test_body.py

-133
This file was deleted.

test_py/generate/test_neural_network.py

-80
This file was deleted.

test_py/generate/test_revolvebot.py

+22-8
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
1-
from __future__ import absolute_import
2-
31
import unittest
42

53
from pyrevolve.revolve_bot import RevolveBot
64

5+
76
class TestRevolveBot(unittest.TestCase):
87
"""
98
Basic tests for RobolveBot body and brain generation
109
"""
10+
def revolve_bot_equal(self, roba, robb):
11+
self._revolve_bot_body_equal(roba._body, robb._body)
12+
self._revolve_bot_brain_equal(roba._brain, robb._brain)
1113

12-
def test_load_save_yaml(self):
13-
"""
14-
We load a YAML file and save it
15-
"""
14+
def _revolve_bot_body_equal(self, bodya, bodyb):
15+
self.assertEqual(type(bodya), type(bodyb))
16+
17+
def _revolve_bot_brain_equal(self, braina, brainb):
18+
self.assertEqual(type(braina), type(brainb))
19+
20+
def _proto_test(self, filename):
1621

1722
revolve_bot = RevolveBot()
1823
revolve_bot.load_file(
19-
path='experiments/examples/yaml/simple_robot.yaml',
24+
path=filename,
2025
conf_type='yaml'
2126
)
2227
revolve_bot.save_file(
@@ -30,4 +35,13 @@ def test_load_save_yaml(self):
3035
conf_type='yaml'
3136
)
3237

33-
self.assertEqual(revolve_bot, revolve_bot2)
38+
self.revolve_bot_equal(revolve_bot, revolve_bot2)
39+
40+
def test_load_save_yaml(self):
41+
"""
42+
We load a YAML file and save it
43+
"""
44+
self._proto_test('experiments/examples/yaml/simple_robot.yaml')
45+
self._proto_test('experiments/examples/yaml/spider.yaml')
46+
self._proto_test('experiments/examples/yaml/gecko.yaml')
47+
self._proto_test('experiments/examples/yaml/snake.yaml')

0 commit comments

Comments
 (0)