|
18 | 18 | from MLC.Population.Population import Population as MLCPopulation |
19 | 19 | from MLC.Simulation import Simulation |
20 | 20 |
|
21 | | - |
| 21 | +from MLC.arduino import boards |
| 22 | +from MLC.arduino.protocol import ProtocolConfig |
| 23 | +from MLC.arduino.connection.serialconnection import SerialConnectionConfig |
22 | 24 |
|
23 | 25 | class MLCWorkspaceTest(unittest.TestCase): |
24 | 26 | WORKSPACE_DIR = os.path.abspath("/tmp/mlc_workspace/") |
@@ -201,6 +203,85 @@ def test_get_info_empty_simulation(self): |
201 | 203 |
|
202 | 204 | mlc.close_experiment(MLCWorkspaceTest.ORIGINAL_EXPERIMENT) |
203 | 205 |
|
| 206 | + def test_create_experiment_and_obtain_configuration(self): |
| 207 | + try: |
| 208 | + mlc = MLCLocal(working_dir=MLCWorkspaceTest.WORKSPACE_DIR) |
| 209 | + mlc.new_experiment(MLCWorkspaceTest.NEW_EXPERIMENT, |
| 210 | + MLCWorkspaceTest.NEW_CONFIGURATION) |
| 211 | + mlc.open_experiment(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 212 | + configuration = mlc.get_experiment_configuration( |
| 213 | + MLCWorkspaceTest.NEW_EXPERIMENT) |
| 214 | + print configuration |
| 215 | + mlc.close_experiment(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 216 | + |
| 217 | + # check configuration structure |
| 218 | + self.assertIsInstance(configuration, dict) |
| 219 | + self.assertTrue(configuration.has_key("PARAMS")) |
| 220 | + self.assertIsInstance(configuration["PARAMS"], dict) |
| 221 | + self.assertTrue(configuration["PARAMS"].has_key("test_param")) |
| 222 | + self.assertEqual(configuration["PARAMS"]["test_param"], |
| 223 | + "test_value") |
| 224 | + |
| 225 | + finally: |
| 226 | + # FIXME: use Setup/TearDown testcase |
| 227 | + mlc.delete_experiment(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 228 | + |
| 229 | + def test_get_default_board_configuration(self): |
| 230 | + try: |
| 231 | + mlc = MLCLocal(working_dir=MLCWorkspaceTest.WORKSPACE_DIR) |
| 232 | + mlc.new_experiment(MLCWorkspaceTest.NEW_EXPERIMENT, |
| 233 | + MLCWorkspaceTest.NEW_CONFIGURATION) |
| 234 | + mlc.open_experiment(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 235 | + |
| 236 | + board_configuration, serial_connection = mlc.get_board_configuration(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 237 | + |
| 238 | + self.assertEqual(board_configuration.board_type, boards.Due) |
| 239 | + self.assertEqual(board_configuration.read_count, 2) |
| 240 | + self.assertEqual(board_configuration.read_delay, 0) |
| 241 | + self.assertEqual(board_configuration.report_mode, 0) |
| 242 | + self.assertEqual(board_configuration.analog_resolution, 12) |
| 243 | + |
| 244 | + self.assertEqual(serial_connection.port, "/dev/ttyACM0") |
| 245 | + self.assertEqual(serial_connection.baudrate, 115200) |
| 246 | + self.assertEqual(serial_connection.parity, "N") |
| 247 | + self.assertEqual(serial_connection.stopbits, 1) |
| 248 | + self.assertEqual(serial_connection.bytesize, 8) |
| 249 | + |
| 250 | + finally: |
| 251 | + # FIXME: use Setup/TearDown testcase |
| 252 | + mlc.delete_experiment(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 253 | + |
| 254 | + def test_update_board_configuration(self): |
| 255 | + try: |
| 256 | + mlc = MLCLocal(working_dir=MLCWorkspaceTest.WORKSPACE_DIR) |
| 257 | + mlc.new_experiment(MLCWorkspaceTest.NEW_EXPERIMENT, MLCWorkspaceTest.NEW_CONFIGURATION) |
| 258 | + mlc.open_experiment(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 259 | + |
| 260 | + board_configuration, serial_connection = mlc.get_board_configuration(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 261 | + |
| 262 | + new_board_config = ProtocolConfig(None, report_mode=12, read_count=10, read_delay=11, board_type=boards.Leonardo, analog_resolution=13) |
| 263 | + new_connection = SerialConnectionConfig("/dev/ttyACM1", baudrate=5000, parity="P", stopbits=2, bytesize=6) |
| 264 | + mlc.save_board_configuration(MLCWorkspaceTest.NEW_EXPERIMENT, new_board_config, new_connection) |
| 265 | + |
| 266 | + loaded_board_configuration, loaded_connection = mlc.get_board_configuration(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 267 | + |
| 268 | + |
| 269 | + self.assertEqual(loaded_board_configuration.board_type, boards.Leonardo) |
| 270 | + self.assertEqual(loaded_board_configuration.read_count, 10) |
| 271 | + self.assertEqual(loaded_board_configuration.read_delay, 11) |
| 272 | + self.assertEqual(loaded_board_configuration.report_mode, 12) |
| 273 | + self.assertEqual(loaded_board_configuration.analog_resolution, 13) |
| 274 | + |
| 275 | + self.assertEqual(loaded_connection.port, "/dev/ttyACM1") |
| 276 | + self.assertEqual(loaded_connection.baudrate, 5000) |
| 277 | + self.assertEqual(loaded_connection.parity, "P") |
| 278 | + self.assertEqual(loaded_connection.stopbits, 2) |
| 279 | + self.assertEqual(loaded_connection.bytesize, 6) |
| 280 | + |
| 281 | + finally: |
| 282 | + # FIXME: use Setup/TearDown testcase |
| 283 | + mlc.delete_experiment(MLCWorkspaceTest.NEW_EXPERIMENT) |
| 284 | + |
204 | 285 | @nottest |
205 | 286 | def test_go_and_check_simulation_info(self): |
206 | 287 | try: |
|
0 commit comments