1 # SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
 
   3 # SPDX-License-Identifier: MIT
 
   4 import pytest  # pylint: disable=unused-import
 
  11 def test_Dx_OUTPUT_TRUE():
 
  12     """Test digital output pin functionality."""
 
  13     assert board.board_id == "OS_AGNOSTIC_BOARD"
 
  14     pin_out = digitalio.DigitalInOut(board.Dx_OUTPUT)
 
  15     pin_out.direction = digitalio.Direction.OUTPUT
 
  16     # Test setting the value and reading it back
 
  18     assert pin_out.value is True
 
  20     assert pin_out.value is True
 
  27 def test_Dx_INPUT_TRUE():
 
  28     """Test digital input pin Dx_INPUT_TRUE."""
 
  29     assert board.board_id == "OS_AGNOSTIC_BOARD"
 
  30     pin_true = digitalio.DigitalInOut(board.Dx_INPUT_TRUE)
 
  31     pin_true.direction = digitalio.Direction.INPUT
 
  32     assert pin_true.value is True
 
  33     assert pin_true.value is True  # Test subsequent call does not change value
 
  37 def test_Dx_INPUT_TRUE_PULL_DOWN():
 
  38     """Test digital input pin Dx_INPUT_TRUE w/pull down."""
 
  39     assert board.board_id == "OS_AGNOSTIC_BOARD"
 
  40     pin_true = digitalio.DigitalInOut(board.Dx_INPUT_TRUE)
 
  41     pin_true.direction = digitalio.Direction.INPUT
 
  42     assert pin_true.value is True
 
  43     assert pin_true.value is True  # Test subsequent call does not change value
 
  44     pin_true.pull = digitalio.Pull.DOWN
 
  45     assert pin_true.value is False
 
  49 def test_Dx_INPUT_FALSE_PULL_UP():
 
  50     """Test digital input pin Dx_INPUT_FALSE w/pull up."""
 
  51     assert board.board_id == "OS_AGNOSTIC_BOARD"
 
  52     pin_false = digitalio.DigitalInOut(board.Dx_INPUT_FALSE)
 
  53     pin_false.direction = digitalio.Direction.INPUT
 
  54     assert pin_false.value is False
 
  55     assert pin_false.value is False  # Test subsequent call does not change value
 
  56     pin_false.pull = digitalio.Pull.UP
 
  57     assert pin_false.value is False
 
  61 def test_Dx_INPUT_FALSE():
 
  62     """Test digital input pin Dx_INPUT_FALSE"""
 
  63     assert board.board_id == "OS_AGNOSTIC_BOARD"
 
  64     pin_false = digitalio.DigitalInOut(board.Dx_INPUT_FALSE)
 
  65     pin_false.direction = digitalio.Direction.INPUT
 
  66     assert pin_false.value is False
 
  67     assert pin_false.value is False  # Test subsequent call does not change value
 
  71 def test_Dx_INPUT_TOGGLE():
 
  72     """Test digital input pin Dx_INPUT_TOGGLE"""
 
  73     assert board.board_id == "OS_AGNOSTIC_BOARD"
 
  74     pin_toggle = digitalio.DigitalInOut(board.Dx_INPUT_TOGGLE)
 
  75     pin_toggle.direction = digitalio.Direction.INPUT
 
  76     assert pin_toggle.value is True
 
  78         pin_toggle.value is False
 
  79     )  # Test subsequent call does change value for this pin