+from unittest import TestCase
+from testing import yes_no
+
+class TestMMA8451Interactive(TestCase):
+
+ def test_read_value(self):
+ import math
+ import board
+ gc.collect()
+ if not(yes_no("Is MMA8451 wired to SCL {} SDA {} and held still".format(board.SCL, board.SDA))):
+ return # test trivially passed
+ import busio
+ # from https://github.com/adafruit/Adafruit_CircuitPython_MMA8451/blob/29e31a0bb836367bc73763b83513105252b7b264/examples/simpletest.py
+ import adafruit_mma8451
+ # Initialize I2C bus.
+ i2c = busio.I2C(board.SCL, board.SDA)
+ sensor = adafruit_mma8451.MMA8451(i2c)
+
+ x, y, z = sensor.acceleration
+ absolute = math.sqrt(x**2, y**2, z**2)
+ self.assertTrue(9 <=absolute <= 11, "Not earth gravity")
+
+ orientation = sensor.orientation
+ self.assertTrue(orientation in (
+ adafruit_mma8451.PL_PUF,
+ adafruit_mma8451.PL_PUB,
+ adafruit_mma8451.PL_PDF,
+ adafruit_mma8451.PL_PDB,
+ adafruit_mma8451.PL_LRF,
+ adafruit_mma8451.PL_LRB,
+ adafruit_mma8451.PL_LLF,
+ adafruit_mma8451.PL_LLB,
+ ))
+
+class TestBNO055Interactive(TestCase):
+
+ def test_read_value(self):
+ """
+ Access all sensor values as per
+ https://github.com/adafruit/Adafruit_CircuitPython_BNO055/blob/bdf6ada21e7552c242bc470d4d2619b480b4c574/examples/values.py
+ """
+ import board
+ import busio
+ import adafruit_bno055
+
+ i2c = busio.I2C(board.SCL, board.SDA)
+ sensor = adafruit_bno055.BNO055(i2c)
+
+ sensor.temperature
+ sensor.accelerometer
+ sensor.magnetometer
+ sensor.gyroscope
+ sensor.euler
+ sensor.quaternion
+ sensor.linear_acceleration
+ sensor.gravity
+
+
+class TestGPSInteractive(TestCase):
+
+ def test_read_value(self):
+ import microcontroller
+ import busio
+ import adafruit_gps
+
+ # configure the last available UART (first uart often for REPL)
+ uartId, txId, rxId = microcontroller.uartPorts[-1]
+ txPin = microcontroller.Pin(txId)
+ rxPin = microcontroller.Pin(rxId)
+ uart = busio.UART(txPin, rxPin, baudrate=9600, timeout=3000)
+
+ gps = adafruit_gps.GPS(uart)
+
+ gps.send_command('PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0')
+ gps.send_command('PMTK220,1000')
+ gps.update()
+ self.awaitTrue("GPS fix", lambda: gps.has_fix)
+ self.assertTrue(gps.satellites is not None)
+ self.assertTrue(-90 <= gps.latitude < 90)
+ self.assertTrue(-180 <= gps.longitude < 180)
\ No newline at end of file