X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/blobdiff_plain/e86b7edcdb912e9a6b304ffd391c07b18bde6380..38566e3a72507341517804c374e71e3bd4c82934:/test/src/testing/universal/i2c.py diff --git a/test/src/testing/universal/i2c.py b/test/src/testing/universal/i2c.py new file mode 100644 index 0000000..0a2d29c --- /dev/null +++ b/test/src/testing/universal/i2c.py @@ -0,0 +1,88 @@ +import gc +from testing import yes_no +gc.collect() +from unittest import TestCase +gc.collect() +from testing.board.i2c import I2C +gc.collect() + +class TestBME280Interactive(TestCase): + + def test_read_value(self): + if not(yes_no("Is BME280 wired to SCL {} SDA {}".format(board.SCL, board.SDA))): + return # test trivially passed + + import board + gc.collect() + import adafruit_bme280 + gc.collect() + i2c = I2C(board.SCL, board.SDA) + bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c) + temperature = bme280.temperature + humidity = bme280.humidity + pressure = bme280.pressure + altitude = bme280.altitude + self.assertTrue(type(temperature) is float ) + self.assertTrue(type(humidity) is float ) + self.assertTrue(type(pressure) is float ) + self.assertTrue(type(altitude) is float ) + + self.assertTrue( -50 <= temperature <= 50) + self.assertTrue( 0 <= humidity <= 100) + self.assertTrue( 900 <= pressure <= 1100) + self.assertTrue( -1000 <= altitude <= 9,848) + + +class TestMMA8451Interactive(TestCase): + + def test_read_value(self): + import math + gc.collect() + 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 + # from https://github.com/adafruit/Adafruit_CircuitPython_MMA8451/blob/29e31a0bb836367bc73763b83513105252b7b264/examples/simpletest.py + import adafruit_mma8451 + i2c = 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 + gc.collect() + import adafruit_bno055 + gc.collect() + i2c = I2C(board.SCL, board.SDA) + sensor = adafruit_bno055.BNO055(i2c) + + self.assertTrue(9 <= sensor.gravity <= 11) + self.assertTrue(sensor.temperature != 0) + self.assertTrue(sensor.acceleration != (0,0,0)) + self.assertTrue(sensor.magnetometer != (0,0,0)) + self.assertTrue(sensor.gyroscope != (0,0,0)) + self.assertTrue(sensor.quaternion != (0,0,0,0)) + sensor.euler + sensor.linear_acceleration