gr-libs 0.2.2__py3-none-any.whl → 0.2.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gr_libs/_evaluation/_generate_experiments_results.py +0 -141
- gr_libs/_version.py +2 -2
- gr_libs/all_experiments.py +73 -107
- gr_libs/environment/environment.py +22 -2
- gr_libs/evaluation/generate_experiments_results.py +100 -0
- gr_libs/ml/neural/deep_rl_learner.py +17 -20
- gr_libs/odgr_executor.py +20 -25
- gr_libs/problems/consts.py +568 -290
- gr_libs/recognizer/_utils/__init__.py +1 -0
- gr_libs/recognizer/gr_as_rl/gr_as_rl_recognizer.py +12 -1
- gr_libs/recognizer/graml/graml_recognizer.py +16 -8
- gr_libs/tutorials/gcdraco_panda_tutorial.py +6 -2
- gr_libs/tutorials/gcdraco_parking_tutorial.py +3 -1
- gr_libs/tutorials/graml_minigrid_tutorial.py +16 -12
- gr_libs/tutorials/graml_panda_tutorial.py +6 -2
- gr_libs/tutorials/graml_parking_tutorial.py +3 -1
- gr_libs/tutorials/graml_point_maze_tutorial.py +15 -2
- {gr_libs-0.2.2.dist-info → gr_libs-0.2.5.dist-info}/METADATA +27 -16
- {gr_libs-0.2.2.dist-info → gr_libs-0.2.5.dist-info}/RECORD +26 -25
- {gr_libs-0.2.2.dist-info → gr_libs-0.2.5.dist-info}/WHEEL +1 -1
- tests/test_odgr_executor_expertbasedgraml.py +14 -0
- tests/test_odgr_executor_gcdraco.py +14 -0
- tests/test_odgr_executor_gcgraml.py +14 -0
- tests/test_odgr_executor_graql.py +14 -0
- gr_libs/_evaluation/_analyze_results_cross_alg_cross_domain.py +0 -260
- gr_libs/_evaluation/_generate_task_specific_statistics_plots.py +0 -497
- gr_libs/_evaluation/_get_plans_images.py +0 -61
- gr_libs/_evaluation/_increasing_and_decreasing_.py +0 -106
- /gr_libs/{_evaluation → evaluation}/__init__.py +0 -0
- {gr_libs-0.2.2.dist-info → gr_libs-0.2.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
from .format import recognizer_str_to_obj
|
@@ -193,6 +193,10 @@ class Draco(GRAsRL, GaAgentTrainerRecognizer):
|
|
193
193
|
if self.rl_agent_type == None:
|
194
194
|
self.rl_agent_type = DeepRLAgent
|
195
195
|
self.evaluation_function = kwargs.get("evaluation_function")
|
196
|
+
if self.evaluation_function is None:
|
197
|
+
from gr_libs.metrics.metrics import mean_wasserstein_distance
|
198
|
+
|
199
|
+
self.evaluation_function = mean_wasserstein_distance
|
196
200
|
assert callable(
|
197
201
|
self.evaluation_function
|
198
202
|
), "Evaluation function must be a callable function."
|
@@ -218,11 +222,18 @@ class GCDraco(GRAsRL, LearningRecognizer, GaAdaptingRecognizer):
|
|
218
222
|
if self.rl_agent_type == None:
|
219
223
|
self.rl_agent_type = GCDeepRLAgent
|
220
224
|
self.evaluation_function = kwargs.get("evaluation_function")
|
225
|
+
if self.evaluation_function is None:
|
226
|
+
from gr_libs.metrics.metrics import mean_wasserstein_distance
|
227
|
+
|
228
|
+
self.evaluation_function = mean_wasserstein_distance
|
221
229
|
assert callable(
|
222
230
|
self.evaluation_function
|
223
231
|
), "Evaluation function must be a callable function."
|
224
232
|
|
225
|
-
def domain_learning_phase(self,
|
233
|
+
def domain_learning_phase(self, problems):
|
234
|
+
base = problems["gc"]
|
235
|
+
base_goals = base["goals"]
|
236
|
+
train_configs = base["train_configs"]
|
226
237
|
super().domain_learning_phase(base_goals, train_configs)
|
227
238
|
agent_kwargs = {
|
228
239
|
"domain_name": self.env_prop.domain_name,
|
@@ -335,11 +335,15 @@ class BGGraml(Graml):
|
|
335
335
|
def __init__(self, *args, **kwargs):
|
336
336
|
super().__init__(*args, **kwargs)
|
337
337
|
|
338
|
-
def domain_learning_phase(self,
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
338
|
+
def domain_learning_phase(self, problems):
|
339
|
+
# Always use 'bg' for BGGraml
|
340
|
+
base = problems["bg"]
|
341
|
+
base_goals = base["goals"]
|
342
|
+
train_configs = base["train_configs"]
|
343
|
+
assert len(base_goals) == len(
|
344
|
+
train_configs
|
345
|
+
), "base_goals and train_configs should have the same length"
|
346
|
+
super().domain_learning_phase(base_goals, train_configs)
|
343
347
|
|
344
348
|
# In case we need goal-directed agent for every goal
|
345
349
|
def train_agents_on_base_goals(self, base_goals: list[str], train_configs: list):
|
@@ -544,11 +548,15 @@ class GCGraml(Graml, GaAdaptingRecognizer):
|
|
544
548
|
and not self.env_prop.is_action_discrete()
|
545
549
|
)
|
546
550
|
|
547
|
-
def domain_learning_phase(self,
|
551
|
+
def domain_learning_phase(self, problems):
|
552
|
+
# Always use 'gc' for GCGraml
|
553
|
+
base = problems["gc"]
|
554
|
+
base_goals = base["goals"]
|
555
|
+
train_configs = base["train_configs"]
|
548
556
|
assert (
|
549
557
|
len(train_configs) == 1
|
550
|
-
), "
|
551
|
-
|
558
|
+
), "GCGraml should only have one train config for the base goals, it uses a single agent"
|
559
|
+
super().domain_learning_phase(base_goals, train_configs)
|
552
560
|
|
553
561
|
# In case we need goal-directed agent for every goal
|
554
562
|
def train_agents_on_base_goals(self, base_goals: list[str], train_configs: list):
|
@@ -17,8 +17,12 @@ def run_gcdraco_panda_tutorial():
|
|
17
17
|
)
|
18
18
|
|
19
19
|
recognizer.domain_learning_phase(
|
20
|
-
|
21
|
-
|
20
|
+
{
|
21
|
+
"gc": {
|
22
|
+
"goals": [np.array([PandaProperty.sample_goal()]) for _ in range(30)],
|
23
|
+
"train_configs": [(SAC, 800000)],
|
24
|
+
}
|
25
|
+
}
|
22
26
|
)
|
23
27
|
|
24
28
|
recognizer.goals_adaptation_phase(
|
@@ -15,7 +15,9 @@ def run_gcdraco_parking_tutorial():
|
|
15
15
|
evaluation_function=mean_wasserstein_distance, # or mean_p_value
|
16
16
|
)
|
17
17
|
|
18
|
-
recognizer.domain_learning_phase(
|
18
|
+
recognizer.domain_learning_phase(
|
19
|
+
{"gc": {"goals": [i for i in range(1, 21)], "train_configs": [(PPO, 200000)]}}
|
20
|
+
)
|
19
21
|
recognizer.goals_adaptation_phase(
|
20
22
|
dynamic_goals=["1", "11", "21"]
|
21
23
|
# no need for expert sequence generation since GCRL is used
|
@@ -12,18 +12,22 @@ def run_graml_minigrid_tutorial():
|
|
12
12
|
)
|
13
13
|
|
14
14
|
recognizer.domain_learning_phase(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
15
|
+
{
|
16
|
+
"bg": {
|
17
|
+
"goals": [
|
18
|
+
(11, 1),
|
19
|
+
(11, 11),
|
20
|
+
(1, 11),
|
21
|
+
(7, 11),
|
22
|
+
(8, 1),
|
23
|
+
(10, 6),
|
24
|
+
(6, 9),
|
25
|
+
(11, 3),
|
26
|
+
(11, 5),
|
27
|
+
],
|
28
|
+
"train_configs": [(QLEARNING, 100000) for _ in range(9)],
|
29
|
+
}
|
30
|
+
}
|
27
31
|
)
|
28
32
|
|
29
33
|
recognizer.goals_adaptation_phase(
|
@@ -14,8 +14,12 @@ def run_graml_panda_tutorial():
|
|
14
14
|
domain_name=PANDA, env_name="PandaMyReachDense"
|
15
15
|
)
|
16
16
|
recognizer.domain_learning_phase(
|
17
|
-
|
18
|
-
|
17
|
+
{
|
18
|
+
"gc": {
|
19
|
+
"goals": [np.array([PandaProperty.sample_goal()]) for _ in range(30)],
|
20
|
+
"train_configs": [(SAC, 800000)],
|
21
|
+
}
|
22
|
+
}
|
19
23
|
)
|
20
24
|
recognizer.goals_adaptation_phase(
|
21
25
|
dynamic_goals=[
|
@@ -11,7 +11,9 @@ from gr_libs.recognizer.graml.graml_recognizer import GCGraml
|
|
11
11
|
def run_graml_parking_tutorial():
|
12
12
|
recognizer = GCGraml(domain_name=PARKING, env_name="Parking-S-14-PC-")
|
13
13
|
|
14
|
-
recognizer.domain_learning_phase(
|
14
|
+
recognizer.domain_learning_phase(
|
15
|
+
{"gc": {"goals": [i for i in range(1, 21)], "train_configs": [(PPO, 200000)]}}
|
16
|
+
)
|
15
17
|
recognizer.goals_adaptation_phase(
|
16
18
|
dynamic_goals=["1", "11", "21"]
|
17
19
|
# no need for expert sequence generation since GCRL is used
|
@@ -14,8 +14,21 @@ def run_graml_point_maze_tutorial():
|
|
14
14
|
)
|
15
15
|
|
16
16
|
recognizer.domain_learning_phase(
|
17
|
-
|
18
|
-
|
17
|
+
{
|
18
|
+
"bg": {
|
19
|
+
"goals": [
|
20
|
+
(9, 1),
|
21
|
+
(9, 9),
|
22
|
+
(1, 9),
|
23
|
+
(3, 3),
|
24
|
+
(3, 4),
|
25
|
+
(8, 2),
|
26
|
+
(3, 7),
|
27
|
+
(2, 8),
|
28
|
+
],
|
29
|
+
"train_configs": [(SAC, 200000) for _ in range(8)],
|
30
|
+
}
|
31
|
+
}
|
19
32
|
)
|
20
33
|
|
21
34
|
recognizer.goals_adaptation_phase(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: gr_libs
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.5
|
4
4
|
Summary: Package with goal recognition frameworks baselines
|
5
5
|
Author: Ben Nageris
|
6
6
|
Author-email: Matan Shamir <matan.shamir@live.biu.ac.il>, Osher Elhadad <osher.elhadad@live.biu.ac.il>
|
@@ -110,11 +110,14 @@ For any issues or troubleshooting, please refer to the repository's issue tracke
|
|
110
110
|
|
111
111
|
Successors of algorithms that don't differ in their specifics are added in parentheses after the algorithm name. For example, since GC-DRACO and DRACO share the same column values, they're written on one line as DRACO (GC).
|
112
112
|
|
113
|
-
| **Algorithm**
|
114
|
-
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
| **Algorithm** | **Supervised** | **Reinforcement Learning** | **Discrete States** | **Continuous States** | **Discrete Actions** | **Continuous Actions** | **Model-Based** | **Model-Free** | **Action-Only** | **Supported Environments** |
|
114
|
+
|---------------------|----------------|---------------------------|---------------------|----------------------|----------------------|-----------------------|------------------|----------------|----------------|--------------------------------------------|
|
115
|
+
| Graql | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | Minigrid |
|
116
|
+
| Draco | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | PointMaze, Panda Reach, Parking |
|
117
|
+
| GCDraco | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | Panda Reach, Parking |
|
118
|
+
| ExpertBasedGraml | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | Panda Reach, Parking |
|
119
|
+
| BGGraml | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | Minigrid, PointMaze |
|
120
|
+
| GCGraml | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | Panda Reach, Parking |
|
118
121
|
|
119
122
|
## Supported Domains
|
120
123
|
|
@@ -259,20 +262,28 @@ A part of the contribution of this package is standardizing the evaluations of M
|
|
259
262
|
consts.py provides a set of ODGR problems on which the framework can be evaluated.
|
260
263
|
The 'evaluations' sub-package provides scripts to analyze the results of the all_experiments.py execution, done over the ODGR the problems defined at consts.py.
|
261
264
|
|
262
|
-
|
263
|
-
This script use multiprocessing to simultaniously execute many odgr_executor.py python executions as child processes.
|
265
|
+
#### Running all_experiments.py
|
264
266
|
|
265
|
-
|
267
|
+
You can now run `all_experiments.py` with your desired combination of domains, environments, tasks, and recognizers directly from the command line, without editing the script:
|
266
268
|
|
267
|
-
After execution, another level of abstraction for the results is created. For example, when running for Graql in the minigrid domain:
|
268
269
|
```sh
|
269
|
-
|
270
|
+
python gr_libs/all_experiments.py \
|
271
|
+
--domains minigrid parking \
|
272
|
+
--envs MiniGrid-SimpleCrossingS13N4 Parking-S-14-PC- \
|
273
|
+
--tasks L1 L2 L3 L4 L5 \
|
274
|
+
--recognizers ExpertBasedGraml Graql \
|
275
|
+
--n 5
|
270
276
|
```
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
277
|
+
|
278
|
+
- `--domains`: List of domains to run experiments on.
|
279
|
+
- `--envs`: List of environments (must be in the same order as domains).
|
280
|
+
- `--tasks`: List of tasks (applied to all domain/env pairs).
|
281
|
+
- `--recognizers`: List of recognizers/algorithms to evaluate.
|
282
|
+
- `--n`: Number of times to execute each task (default: 5).
|
283
|
+
|
284
|
+
This script uses multiprocessing to simultaneously execute many `odgr_executor.py` runs as child processes. It logs failures and successful executions for debugability.
|
285
|
+
|
286
|
+
After execution, summary files are generated in `outputs/summaries/` for further analysis and plotting.
|
276
287
|
|
277
288
|
### Using analysis scripts
|
278
289
|
The repository provides benchmark domains and scripts for analyzing experimental results. The `evaluation` directory contains tools for processing and visualizing the results from odgr_executor.py and all_experiments.py.
|
@@ -1,17 +1,14 @@
|
|
1
1
|
gr_libs/__init__.py,sha256=XGx0_nWGgy-1zEQUXHRBs3TTb13jX9yOxVvSaavCkBk,376
|
2
|
-
gr_libs/_version.py,sha256=
|
3
|
-
gr_libs/all_experiments.py,sha256=
|
4
|
-
gr_libs/odgr_executor.py,sha256=
|
5
|
-
gr_libs/_evaluation/
|
6
|
-
gr_libs/_evaluation/_analyze_results_cross_alg_cross_domain.py,sha256=ksguC1zeokjpd_ItC5e6MX8HE9qEtjw-uxCXzwGsO88,9863
|
7
|
-
gr_libs/_evaluation/_generate_experiments_results.py,sha256=Nj2XLDJ-g9Vn_3oA3tEDu8qWQcIT25Hf_tRySm00oGc,5163
|
8
|
-
gr_libs/_evaluation/_generate_task_specific_statistics_plots.py,sha256=Jgst3PW-XTu1JHWhyl73zi4mqoUI3U3dHLIUemKSx7c,19051
|
9
|
-
gr_libs/_evaluation/_get_plans_images.py,sha256=a_e97aOMiZ8toBiAIzJCx75lF9RLiVfxROYvcoNy6rM,2729
|
10
|
-
gr_libs/_evaluation/_increasing_and_decreasing_.py,sha256=1VOHrriv9mdhc1fxNjVAsu-sO77KRnscbmFXNUub0YU,3868
|
2
|
+
gr_libs/_version.py,sha256=N3oBwJUFmS-AwCjqOcSlRW4GvSq-uJJMaBvoGfv1-hM,511
|
3
|
+
gr_libs/all_experiments.py,sha256=OTTMx5ddy7z3kJbElQcR5nwEtshPsoehNPwDuMzojcc,10006
|
4
|
+
gr_libs/odgr_executor.py,sha256=ttfEjeEBjr_YusegCX2zx11NBMfeXUwyKJjryYS6QaY,10685
|
5
|
+
gr_libs/_evaluation/_generate_experiments_results.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
6
|
gr_libs/environment/__init__.py,sha256=xCCzTFDrj_ijdLoZ-PzGyyYDeU2aoW19X1da76_x9iM,1458
|
12
|
-
gr_libs/environment/environment.py,sha256=
|
7
|
+
gr_libs/environment/environment.py,sha256=fAjkM5XyfFBlP6U3yjMyGj_WDI2c4fM2Ac-e7-kSKuM,16940
|
13
8
|
gr_libs/environment/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
9
|
gr_libs/environment/_utils/utils.py,sha256=dKuWoUpyuGSJL6qHQfvvJnFf4g-Rh1t2ykuRNrsIvP8,614
|
10
|
+
gr_libs/evaluation/__init__.py,sha256=trZ-4PyOhzEEK_TvQLfbnNFcqYuN6SdRjDkkAdW6MW8,78
|
11
|
+
gr_libs/evaluation/generate_experiments_results.py,sha256=mXsGlOJKqRwtTDxuIVlsZhwgLyHAKb3zmK6jAVE7G7o,3420
|
15
12
|
gr_libs/metrics/__init__.py,sha256=dQo4cMqrOB2-VLDxTIGryCm14mUnmEXs4F8jqcgNsY4,145
|
16
13
|
gr_libs/metrics/metrics.py,sha256=tpjr4hKt5AGft5H2YxkbF0O8La5JZQaOmnkyjptD2M8,13430
|
17
14
|
gr_libs/ml/__init__.py,sha256=xX9InKnWhYm8e0Lhsnnm0H68yBPTNEfq756w95xv-98,83
|
@@ -20,7 +17,7 @@ gr_libs/ml/consts.py,sha256=vsEB1nk5V_qP3FjNlv4vBKeTTFngV3RNaNp6fWnmEz0,366
|
|
20
17
|
gr_libs/ml/base/__init__.py,sha256=f63VN3Lv4tQp3dAZjtT78PGV5XuOD8WlU4svy43LZrU,123
|
21
18
|
gr_libs/ml/base/rl_agent.py,sha256=Ewqu583gUkgRmeGWCJgkyDBKxTqQnN4qa2vxq0-ydoE,3843
|
22
19
|
gr_libs/ml/neural/__init__.py,sha256=vGdjx1KzlB9UxNRwkAeYBEoYdVtRdhj0M4mtWuzqvU8,55
|
23
|
-
gr_libs/ml/neural/deep_rl_learner.py,sha256=
|
20
|
+
gr_libs/ml/neural/deep_rl_learner.py,sha256=fq5n78RelIi794nNIl9x-W8ZnO5kXmD0LYv2q_2xMs8,26690
|
24
21
|
gr_libs/ml/neural/utils/__init__.py,sha256=Av5wB2eSHR7spHqZFdgau_9EJV0FmijaYqXeyGMwktQ,69
|
25
22
|
gr_libs/ml/neural/utils/dictlist.py,sha256=ORFez_KmaCzraStF97hxdgCAAALP4Er8u3e9RcqlvhM,1030
|
26
23
|
gr_libs/ml/planner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -42,30 +39,34 @@ gr_libs/ml/utils/math.py,sha256=7Au9L-FHE7eB1ygLbbuR6AhZK6kq8D_9srVtu4iDMPk,429
|
|
42
39
|
gr_libs/ml/utils/other.py,sha256=93oaveiHUzWt_rCDVqybrpHdAfI3UBPCto31Nm5yT0Y,506
|
43
40
|
gr_libs/ml/utils/storage.py,sha256=CgZHWcC3GovKe-U3Cvwz0s5qCbBrYHY6w_CV-LnTquc,3791
|
44
41
|
gr_libs/problems/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
-
gr_libs/problems/consts.py,sha256=
|
42
|
+
gr_libs/problems/consts.py,sha256=FQk2TaKAFHdZiISubGXeYleBaOXpk8ZC749NtP5RqWs,68520
|
46
43
|
gr_libs/recognizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
44
|
gr_libs/recognizer/recognizer.py,sha256=gtUttI1473co5ZHgO7-wQ7HL-aYJp0S4X6goqVYyT24,3091
|
48
|
-
gr_libs/recognizer/_utils/__init__.py,sha256=
|
45
|
+
gr_libs/recognizer/_utils/__init__.py,sha256=MvXPRyr30W5C_n-Dul3aheE_9SWy2aIMGINKWj36mfM,42
|
49
46
|
gr_libs/recognizer/_utils/format.py,sha256=eCoqEwv7YdLrF5nb-xAbDXxQ-ogvq_DHf9I2uwdfv-0,512
|
50
47
|
gr_libs/recognizer/gr_as_rl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
|
-
gr_libs/recognizer/gr_as_rl/gr_as_rl_recognizer.py,sha256=
|
48
|
+
gr_libs/recognizer/gr_as_rl/gr_as_rl_recognizer.py,sha256=asjsjg52f43vlFPw1iT7PK8oOopa-u0UN7XBgiuufAY,10158
|
52
49
|
gr_libs/recognizer/graml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
53
50
|
gr_libs/recognizer/graml/_gr_dataset.py,sha256=JChqXOh7TP8yu-zQPCQ34ghw7iJFnAzd2FkeOyndvFk,10038
|
54
|
-
gr_libs/recognizer/graml/graml_recognizer.py,sha256=
|
51
|
+
gr_libs/recognizer/graml/graml_recognizer.py,sha256=BVV-qn46AffkALRudBydHU24BGwMnvGFB1WSkIOAcWs,26292
|
55
52
|
gr_libs/tutorials/draco_panda_tutorial.py,sha256=9_scjcyMjkjw8l6g9E-GKOrFTxsIIndW_J1WKjE6-wo,2146
|
56
53
|
gr_libs/tutorials/draco_parking_tutorial.py,sha256=jjbNzSv5l4EvjydwslNYh51xHoIkNmcjPbi0YL6WAeA,1896
|
57
|
-
gr_libs/tutorials/gcdraco_panda_tutorial.py,sha256=
|
58
|
-
gr_libs/tutorials/gcdraco_parking_tutorial.py,sha256=
|
59
|
-
gr_libs/tutorials/graml_minigrid_tutorial.py,sha256=
|
60
|
-
gr_libs/tutorials/graml_panda_tutorial.py,sha256=
|
61
|
-
gr_libs/tutorials/graml_parking_tutorial.py,sha256=
|
62
|
-
gr_libs/tutorials/graml_point_maze_tutorial.py,sha256=
|
54
|
+
gr_libs/tutorials/gcdraco_panda_tutorial.py,sha256=HzGKqZR--rcTYj3RQMuQCzTVll2Q-Z_RQbmGpcZPovg,2301
|
55
|
+
gr_libs/tutorials/gcdraco_parking_tutorial.py,sha256=kd7xRsjGPCHohwhbJEK5XAsD3R9k8rcd0qz8IZIgjN4,2103
|
56
|
+
gr_libs/tutorials/graml_minigrid_tutorial.py,sha256=bEsi21-9-AiOw4-H98Fr3YaCrp8_uSXOiiGahaCO4mg,2356
|
57
|
+
gr_libs/tutorials/graml_panda_tutorial.py,sha256=e2pm62Hj6wyzKO-RvSz_qnDxLZoqKqnzc8B_ylVoGVM,2208
|
58
|
+
gr_libs/tutorials/graml_parking_tutorial.py,sha256=vRvcbrbM8N7npt7W_0g-CbUhALkXVqUejoVWlPMuj04,1991
|
59
|
+
gr_libs/tutorials/graml_point_maze_tutorial.py,sha256=KA28__CNKslxq3p6O5htjJFDKOXXbiA1bOX-oPJxjmI,2463
|
63
60
|
gr_libs/tutorials/graql_minigrid_tutorial.py,sha256=HT8kCFNbZXAraIau9wtgC_aW8xg-QNRZB2lcpGm3yWk,1941
|
64
61
|
tests/test_draco.py,sha256=oIeTDgn6pt3RfTC-RPX3Bw5cG4BThxRGH3z8en3TX0M,385
|
65
62
|
tests/test_gcdraco.py,sha256=vV6rp7PkJJk_WpAfRekb197QiMHjXXApqrBiLG9RTwo,308
|
66
63
|
tests/test_graml.py,sha256=amSikMWrGS9BNVSXGNKc1n5tfRl-FfgCsyHYsJtduD4,608
|
67
64
|
tests/test_graql.py,sha256=KxVKx6rcSCbN-PjxR2DFoKcILRUmMDz0dTM5SvJZMXg,154
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
65
|
+
tests/test_odgr_executor_expertbasedgraml.py,sha256=UQh1pzaqAy9kRN1O--x1tQLGWkRXuYnz5ujB2H1XMas,558
|
66
|
+
tests/test_odgr_executor_gcdraco.py,sha256=VUmnO33tuMVlNYz7Fh08VUW4jfUXhhUsJu7oPiLF2iU,506
|
67
|
+
tests/test_odgr_executor_gcgraml.py,sha256=MmyadmboVxFwfRigqe9jondZopqUjhbQ3gXjCbK4yAs,506
|
68
|
+
tests/test_odgr_executor_graql.py,sha256=06p_kPAUn2OQrL-nBik58C22UPbTDC4CwDaB7MUk61o,514
|
69
|
+
gr_libs-0.2.5.dist-info/METADATA,sha256=TYD_l_WXrcWoyi8fb4RkGjamcfdbcOeiPfrxypb-sQs,14421
|
70
|
+
gr_libs-0.2.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
71
|
+
gr_libs-0.2.5.dist-info/top_level.txt,sha256=Yzc_VSW3gzbVM7ZtlV4r6VXmfAC8WXqGVUgK1r6JcLs,14
|
72
|
+
gr_libs-0.2.5.dist-info/RECORD,,
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import subprocess
|
2
|
+
import sys
|
3
|
+
|
4
|
+
def test_odgr_executor_expertbasedgraml_minigrid():
|
5
|
+
"""Test odgr_executor.py with ExpertBasedGraml on minigrid, L1, easiest env."""
|
6
|
+
result = subprocess.run([
|
7
|
+
sys.executable, "gr_libs/odgr_executor.py",
|
8
|
+
"--domain", "minigrid",
|
9
|
+
"--env_name", "MiniGrid-SimpleCrossingS13N4",
|
10
|
+
"--recognizer", "ExpertBasedGraml",
|
11
|
+
"--task", "L1",
|
12
|
+
"--collect_stats"
|
13
|
+
], capture_output=True, text=True)
|
14
|
+
assert result.returncode == 0, f"ExpertBasedGraml minigrid L1 failed: {result.stderr}"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import subprocess
|
2
|
+
import sys
|
3
|
+
|
4
|
+
def test_odgr_executor_gcdraco_parking():
|
5
|
+
"""Test odgr_executor.py with GCDraco on parking, L1, easiest env."""
|
6
|
+
result = subprocess.run([
|
7
|
+
sys.executable, "gr_libs/odgr_executor.py",
|
8
|
+
"--domain", "parking",
|
9
|
+
"--env_name", "Parking-S-14-PC-",
|
10
|
+
"--recognizer", "GCDraco",
|
11
|
+
"--task", "L1",
|
12
|
+
"--collect_stats"
|
13
|
+
], capture_output=True, text=True)
|
14
|
+
assert result.returncode == 0, f"GCDraco parking L1 failed: {result.stderr}"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import subprocess
|
2
|
+
import sys
|
3
|
+
|
4
|
+
def test_odgr_executor_gcgraml_parking():
|
5
|
+
"""Test odgr_executor.py with GCGraml on parking, L1, easiest env."""
|
6
|
+
result = subprocess.run([
|
7
|
+
sys.executable, "gr_libs/odgr_executor.py",
|
8
|
+
"--domain", "parking",
|
9
|
+
"--env_name", "Parking-S-14-PC-",
|
10
|
+
"--recognizer", "GCGraml",
|
11
|
+
"--task", "L1",
|
12
|
+
"--collect_stats"
|
13
|
+
], capture_output=True, text=True)
|
14
|
+
assert result.returncode == 0, f"GCGraml parking L1 failed: {result.stderr}"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import subprocess
|
2
|
+
import sys
|
3
|
+
|
4
|
+
def test_odgr_executor_graql_minigrid():
|
5
|
+
"""Test odgr_executor.py with Graql on minigrid, L1, easiest env."""
|
6
|
+
result = subprocess.run([
|
7
|
+
sys.executable, "gr_libs/odgr_executor.py",
|
8
|
+
"--domain", "minigrid",
|
9
|
+
"--env_name", "MiniGrid-SimpleCrossingS13N4",
|
10
|
+
"--recognizer", "Graql",
|
11
|
+
"--task", "L1",
|
12
|
+
"--collect_stats"
|
13
|
+
], capture_output=True, text=True)
|
14
|
+
assert result.returncode == 0, f"Graql minigrid L1 failed: {result.stderr}"
|