]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - tests/test_generic_agnostic_board_analogio.py
move tests to pyutest test/ dir
[Adafruit_Blinka-hackapet.git] / tests / test_generic_agnostic_board_analogio.py
diff --git a/tests/test_generic_agnostic_board_analogio.py b/tests/test_generic_agnostic_board_analogio.py
new file mode 100644 (file)
index 0000000..07c8424
--- /dev/null
@@ -0,0 +1,127 @@
+# SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+import pytest
+import board
+import analogio
+
+# Analog Outputs
+def test_Ax_OUTPUT():
+    """Test analog output pin functionality."""
+    assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
+    pin_out = analogio.AnalogOut(board.Ax_OUTPUT)
+
+    # Test boundaries of setting the value and reading it back
+    pin_out.value = 0
+    assert pin_out.value == 0
+    pin_out.value = 65535
+    assert pin_out.value == 65535
+
+    pin_out.deinit()
+
+
+# Analog Inputs
+
+# Values for sine wave
+# (data points = 20, amplitude=100, frequency=1)
+sine_wave = [
+    0,
+    31,
+    59,
+    81,
+    95,
+    100,
+    95,
+    81,
+    59,
+    31,
+    0,
+    -31,
+    -59,
+    -81,
+    -95,
+    -100,
+    -95,
+    -81,
+    -59,
+    -31,
+]
+
+# Values for a sawtooth wave
+# (data points = 20, amplitude=100)
+sawtooth_wave = [
+    -100,
+    -80,
+    -60,
+    -40,
+    -20,
+    0,
+    20,
+    40,
+    60,
+    80,
+    -100,
+    -80,
+    -60,
+    -40,
+    -20,
+    0,
+    20,
+    40,
+    60,
+    80,
+]
+
+
+def test_Ax_INPUT_RAND_INT():
+    """Test random integer from pin Ax_INPUT_RAND_INT"""
+    assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
+    pin_random = analogio.AnalogIn(board.Ax_INPUT_RAND_INT)
+
+    assert isinstance(pin_random.value, int)
+
+    pin_random.deinit()
+
+
+def test_Ax_INPUT_FIXED_INT_PI():
+    """Test fixed integer from pin Ax_INPUT_FIXED_INT_PI"""
+    assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
+    pin_pi = analogio.AnalogIn(board.Ax_INPUT_FIXED_INT_PI)
+
+    assert pin_pi.value == 31415
+
+    pin_pi.deinit()
+
+
+def test_Ax_INPUT_WAVE_SINE():
+    """Test sine wave from pin Ax_INPUT_WAVE_SINE"""
+    assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
+    pin_sine_wave = analogio.AnalogIn(board.Ax_INPUT_WAVE_SINE)
+
+    # Run through the sine wave once
+    for i, expected_value in enumerate(sine_wave):
+        assert pin_sine_wave.value == expected_value
+
+
+    # Run through the sine wave again to ensure it loops back correctly
+    for i, expected_value in enumerate(sine_wave):
+        assert pin_sine_wave.value == expected_value
+
+    pin_sine_wave.deinit()
+
+
+def test_Ax_INPUT_WAVE_SAW():
+    """Test sawtooth wave from pin Ax_INPUT_WAVE_SAW"""
+    assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
+    pin_saw_wave = analogio.AnalogIn(board.Ax_INPUT_WAVE_SAW)
+
+    # Run through the sine wave once
+    for i in range(len(sawtooth_wave)):
+        assert pin_saw_wave.value == sawtooth_wave[i]
+
+    # Run through the sine wave again to ensure it loops back correctly
+    for i in range(len(sawtooth_wave)):
+        assert pin_saw_wave.value == sawtooth_wave[i]
+
+
+    pin_saw_wave.deinit()