X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/4d339fcb18c46af2d579ca60971182f6f5f93768..3d15d80420f6f61a17bf7e9c00a97863b4d96bb3:/examples/generic_aio.py?ds=inline diff --git a/examples/generic_aio.py b/examples/generic_aio.py index 5b1a033..8e6c9c1 100644 --- a/examples/generic_aio.py +++ b/examples/generic_aio.py @@ -1,7 +1,29 @@ +# 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, @@ -25,32 +47,79 @@ sine_wave = [ -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()