File size: 1,570 Bytes
4b77608
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import argparse
import sys
from openenv.core.env import OpenEnv
from openenv.core.config import EnvConfig
from openenv.core.models import Observation, Action, Reward, EnvState

def main():
    parser = argparse.ArgumentParser(description="OpenEnv CLI")
    subparsers = parser.add_subparsers(dest="command")
    
    val_parser = subparsers.add_parser("validate", help="Validate the OpenEnv implementation")
    
    args = parser.parse_args()
    
    if args.command == "validate":
        print("Validating OpenEnv Spec Compliance...")
        try:
            config = EnvConfig(task_level="easy", verbose=False)
            env = OpenEnv(config=config)
            
            # 1. Test reset
            obs, info = env.reset()
            assert isinstance(obs, Observation), "reset() must return an Observation model"
            
            # 2. Test step
            act = Action(action_type=0)
            obs, reward, terminated, truncated, info = env.step(act)
            assert isinstance(obs, Observation), "step() must return an Observation model"
            assert isinstance(reward, float), "step() must return float reward"
            
            # 3. Test state
            state = env.state()
            assert isinstance(state, EnvState), "state() must return an EnvState model"
            
            print("Validation Passed! Environment is OpenEnv-compliant.")
            sys.exit(0)
        except Exception as e:
            print(f"Validation Failed: {e}")
            sys.exit(1)
            
if __name__ == "__main__":
    main()