11#include < ArduinoUnitTests.h>
22#include < Arduino.h>
3- #include < vector>
4- #include < map>
5-
63#include < Wire.h>
74using namespace std ;
85
9- unittest (beginAsMaster) {
10- Wire.begin ();
11- assertTrue (Wire.getIsMaster ());
12- }
13-
14- unittest (beginAsSlave) {
15- Wire.begin (13 );
16- assertFalse (Wire.getIsMaster ());
17- }
18-
19- unittest (getMasterAddress) {
20- Wire.begin ();
21- assertEqual (0 , Wire.getAddress ());
22- }
23-
24- unittest (getSlaveAddress) {
25- Wire.begin (13 );
26- assertEqual (13 , Wire.getAddress ());
27- }
28-
296unittest (begin_write_end) {
7+ deque<uint8_t >* mosi = Wire.getMosi (14 );
8+ assertEqual (0 , mosi->size ());
309 Wire.begin ();
3110 Wire.beginTransmission (14 );
32- assertEqual (14 , Wire.getAddress ());
33-
34- assertTrue (Wire.isTxBufferEmpty ());
35-
3611 Wire.write (0x07 );
3712 Wire.write (0x0E );
38- assertEqual (0x07 , Wire.getTxBufferElement (0 ));
39- assertEqual (0x0E , Wire.getTxBufferElement (1 ));
40-
4113 Wire.endTransmission ();
42- assertTrue (Wire.isTxBufferEmpty ());
43-
44- vector<int > finalData = {0x07 , 0x0E };
45- assert (finalData == Wire.getDataWritten (14 ));
14+ assertEqual (2 , mosi->size ());
15+ assertEqual (0x07 , mosi->front ());
16+ mosi->pop_front ();
17+ assertEqual (0x0E , mosi->front ());
18+ mosi->pop_front ();
19+ assertEqual (0 , mosi->size ());
4620}
4721
4822unittest (readTwo_writeOne) {
4923 Wire.begin ();
50-
51- vector<int > data1 = {0x07 , 0x0E }, data2 = {1 , 4 , 7 };
52- Wire.setDataToRead (19 , data1);
53- Wire.setDataToRead (34 , data2);
24+ deque<uint8_t >* miso;
25+ miso = Wire.getMiso (19 );
26+ miso->push_back (0x07 );
27+ miso->push_back (0x0E );
28+ miso = Wire.getMiso (34 );
29+ miso->push_back (1 );
30+ miso->push_back (4 );
31+ miso->push_back (7 );
5432
55- assertEqual (2 , Wire.requestFrom (19 , 1 ));
56- assertEqual (3 , Wire.requestFrom (34 , 1 ));
57- assertEqual (data1.size () + data2.size (), Wire.getRxBufferSize ());
33+ assertEqual (0 , Wire.requestFrom (19 , 3 ));
34+ assertEqual (2 , Wire.requestFrom (19 , 2 ));
35+ assertEqual (2 , Wire.available ());
36+ assertEqual (0x07 , Wire.read ());
37+ assertEqual (1 , Wire.available ());
38+ assertEqual (0x0E , Wire.read ());
39+ assertEqual (0 , Wire.available ());
40+ assertEqual (3 , Wire.requestFrom (34 , 3 ));
41+ assertEqual (3 , Wire.available ());
42+ assertEqual (1 , Wire.read ());
43+ assertEqual (2 , Wire.available ());
44+ assertEqual (4 , Wire.read ());
45+ assertEqual (1 , Wire.available ());
46+ assertEqual (7 , Wire.read ());
47+ assertEqual (0 , Wire.available ());
5848
5949 Wire.beginTransmission (47 );
60- assertEqual (47 , Wire.getAddress ());
61- assertTrue (Wire.isTxBufferEmpty ());
62- for (int i = 0 ; i < 5 ; i++) {
63- Wire.write (Wire.read ());
50+ for (int i = 1 ; i < 4 ; i++) {
51+ Wire.write (i * 2 );
6452 }
65- assertEqual (0x07 , Wire.getTxBufferElement (0 ));
66- assertEqual (0x0E , Wire.getTxBufferElement (1 ));
67- assertEqual (1 , Wire.getTxBufferElement (2 ));
68- assertEqual (4 , Wire.getTxBufferElement (3 ));
69- assertEqual (7 , Wire.getTxBufferElement (4 ));
70-
7153 Wire.endTransmission ();
72- assertTrue ( Wire.isTxBufferEmpty () );
54+ deque< uint8_t >* mosi = Wire.getMosi ( 47 );
7355
74- vector<int > finalData = {0x07 , 0x0E , 1 , 4 , 7 };
75- assert (finalData == Wire.getDataWritten (47 ));
56+ assertEqual (3 , mosi->size ());
57+ assertEqual (2 , mosi->front ());
58+ mosi->pop_front ();
59+ assertEqual (2 , mosi->size ());
60+ assertEqual (4 , mosi->front ());
61+ mosi->pop_front ();
62+ assertEqual (1 , mosi->size ());
63+ assertEqual (6 , mosi->front ());
64+ mosi->pop_front ();
65+ assertEqual (0 , mosi->size ());
7666}
7767
7868unittest_main ()
0 commit comments