## Use temp dir
wd <- setwd(tempdir())

## Create a small HMDP with two levels
w<-hmp_mdp_writer()
w$set_weights(c("Duration","Net reward","Items"), duration=1)
w$process()
  w$stage()
   w$state(label="M0")
     w$action(label="A0",weights=c(0,0,0),prob=c(2,0,1))
      w$process()
        w$stage()
         w$state(label="D")
           w$action(label="A0",weights=c(0,0,1),prob=c(1,0,0.5,1,1,0.5))
           w$end_action()
         w$end_state()
        w$end_stage()
        w$stage()
         w$state(label="C0")
           w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
           w$end_action()
           w$action(label="A1",weights=c(1,2,1),prob=c(1,0,0.5,1,1,0.5))
           w$end_action()
         w$end_state()
         w$state(label="C1")
           w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
           w$end_action()
           w$action(label="A1",weights=c(1,2,1),prob=c(1,0,0.5,1,1,0.5))
           w$end_action()
         w$end_state()
        w$end_stage()
        w$stage()
         w$state(label="C0")
           w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1), states_next=0)
           w$end_action()
         w$end_state()
         w$state(label="C1")
           w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1), states_next=0)
           w$end_action()
         w$end_state()
        w$end_stage()
      w$end_process()
     w$end_action()
     w$action(label="A1",weights=c(0,0,0),prob=c(2,0,1))
      w$process()
        w$stage()
         w$state(label="D")
           w$action(label="A0",weights=c(0,0,1),prob=c(1,0,1))
           w$end_action()
         w$end_state()
        w$end_stage()
        w$stage()
         w$state(label="C0")
           w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
           w$end_action()
           w$action(label="A1",weights=c(1,2,1),prob=c(1,0,0.5,1,1,0.5))
           w$end_action()
         w$end_state()
        w$end_stage()
        w$stage()
         w$state(label="C0")
           w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1), states_next=0)
           w$end_action()
         w$end_state()
         w$state(label="C1")
           w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1), states_next=0)
           w$end_action()
           w$action(label="A1",weights=c(0,10,5),prob=c(0,0,0.5,0,1,0.5), states_next=0)
           w$end_action()
         w$end_state()
        w$end_stage()
      w$end_process()
     w$end_action()
   w$end_state()
   w$state(label="M1")
     w$action(label="A0",weights=c(0,0,0),prob=c(2,0,1))
      w$process()
        w$stage()
         w$state(label="D")
           w$action(label="A0",weights=c(0,0,1),prob=c(1,0,0.5,1,1,0.5))
           w$end_action()
         w$end_state()
        w$end_stage()
        w$stage()
         w$state(label="C0")
           w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
           w$end_action()
         w$end_state()
         w$state(label="C1")
           w$action(label="A0",weights=c(0,0,0),prob=c(1,0,1))
           w$end_action()
         w$end_state()
        w$end_stage()
        w$stage()
         w$state(label="C0")
           w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1), states_next=0)
           w$end_action()
         w$end_state()
         w$state(label="C1")
           w$action(label="A0",weights=c(1,4,0),prob=c(0,0,1), states_next=0)
           w$end_action()
         w$end_state()
        w$end_stage()
      w$end_process()
     w$end_action()
   w$end_state()
  w$end_stage()
w$end_process()
w$close_writer()

## Have a look at the hmp file
cat(readr::read_file("r.hmp"))

## Reset working dir
setwd(wd)
