class_docstr: Simple env w/ 2 states and 3 actions (arms): 0, 1, and 2.
  
  Episodes last only for one timestep, possible observations are:
  [-1.0, 1.0] and [1.0, -1.0], where the first element is the "current context".
  The highest reward (+10.0) is received for selecting arm 0 for context=1.0
  and arm 2 for context=-1.0. Action 1 always yields 0.0 reward.
class_docstr_tok: ["Simple","env","w\/","2","states","and","3","actions","(","arms",")",":","0",",","1",",","and","2",".","Episodes","last","only","for","one","timestep",",","possible","observations","are",":","[","-1.0",",","1.0","]","and","[","1.0",",","-1.0","]",",","where","the","first","element","is","the","``","current","context","''",".","The","highest","reward","(","+10.0",")","is","received","for","selecting","arm","0","for","context=1.0","and","arm","2","for","context=-1.0",".","Action","1","always","yields","0.0","reward","."]
code: def step(self, action):
      rewards_for_context = {
          -1.0: [-10, 0, 10],
          1.0: [10, 0, -10],
      }
      reward = rewards_for_context[self.cur_context][action]
      return (
          np.array([-self.cur_context, self.cur_context]),
          reward,
          True,
          False,
          {"regret": 10 - reward},
      )
  
imports: import copy
  import gymnasium
  from gymnasium.spaces import Box, Discrete
  import numpy
  import random
label_desc: Use image node_id 3 for calling the SimpleContextualBandit obj's underlying member method code with example usage: obj.step(action) and returns: np,  reward,  True,  False,  dict