# Example
To take a minimal example, the following asserts the default behaviour of the DigitalInOut
-constructor, to configure a pin as an input with no pull. The gc.collect() calls help to
-minimise heap fragmentation, and ensure there is enough memory to run the particular test.
+constructor, checks the behaviour of switch_to_input/output(), configures a pin as a pull-up button, a pull-down button and an LED.
```python
-import gc
import testing
-gc.collect()
-import testing.platform.all.digitalio as suite
-gc.collect()
-case = suite.TestDigitalInOut()
-gc.collect()
-if hasattr(case, 'setUp'):
- case.setUp()
-gc.collect()
-
-gc.mem_free()
-case.test_default()
+testing.main()
```
## Comments
-There is a routine in the top level of the repo called `upload_feather_m0_watch.py` which monitors the repo folder (on a regular
-filesystem) and selectively synchronizes it with the CIRCUITPY folder
-when any changes are saved, which assists with development.
+There are routines in the top level of the repo like `upload_feather_m0_watch.py` which selectively synchronize files it with the CIRCUITPY or PYBFLASH folder for stm32 and samd21 (with a file-watching behaviour for edits), or which execute a selective ampy upload for CircuitPython/Micropython on esp8266.
Given the limited memory available, on the Feather M0 Express, running the test case requires that
the [micropython-lib unittest library](https://github.com/micropython/micropython-lib/blob/master/unittest/unittest.py)
digitalio module regardless of platform
* testing.implementation.circuitpython.digitalio - tests of digitalio against a
native circuitpython host
-* testing.implementation.mcp.digitalio - tests of digitalio against the MCP
+* testing.implementation.micropython.digitalio - tests of digitalio against the MCP
compatibility layer