+# 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,
-31,
]
-def test_ax_input_rand_int():
- assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
- pin_random = analogio.AnalogIn(board.Ax_INPUT_RAND_INT)
+# 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()
+
- assert isinstance(pin_random.value, int)
+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)
- pin_random.deinit()
+ # Run through the sine wave once
+ for i in range(len(sine_wave)):
+ assert pin_sine_wave.value == sine_wave[i]
-def test_ax_input_fixed_int_pi():
- assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
- pin_pi = analogio.AnalogIn(board.Ax_INPUT_FIXED_INT_PI)
+ # Run through the sine wave again to ensure it loops back correctly
+ for i in range(len(sine_wave)):
+ assert pin_sine_wave.value == sine_wave[i]
- assert pin_pi.value == 31415
+ pin_sine_wave.deinit()
- pin_pi.deinit()
-def test_ax_input_sine_wave():
- assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
- pin_sine_wave = analogio.AnalogIn(board.Ax_OUTPUT_WAVE_SINE)
+def test_Ax_INPUT_WAVE_SAW():
+ """Test sawtooth wave from pin Ax_INPUT_WAVE_SAW"""
+ assert board.board_id == "GENERIC_AGNOSTIC_BOARD"
+ pin_sine_wave = analogio.AnalogIn(board.Ax_INPUT_WAVE_SAW)
- # Run through the sine wave once
- for i in range(len(sine_wave)):
- assert pin_sine_wave.value == sine_wave[i]
+ # Run through the sine wave once
+ for i in range(len(sawtooth_wave)):
+ assert pin_sine_wave.value == sawtooth_wave[i]
- # Run through the sine wave again to ensure it loops back correctly
- for i in range(len(sine_wave)):
- assert pin_sine_wave.value == sine_wave[i]
+ # Run through the sine wave again to ensure it loops back correctly
+ for i in range(len(sawtooth_wave)):
+ assert pin_sine_wave.value == sawtooth_wave[i]
- pin_sine_wave.deinit()
+ pin_sine_wave.deinit()