Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: NerfUS-Coord NerfUSTarget
Fork of APP3_xbee by
Diff: test.cpp
- Revision:
- 3:37ea92feece2
- Parent:
- 2:5d437f1b1548
- Child:
- 4:e97cfe6cc18c
--- a/test.cpp Sat Feb 11 20:55:08 2017 +0000
+++ b/test.cpp Sun Feb 12 20:31:46 2017 +0000
@@ -5,12 +5,15 @@
void run_all_tests()
{
- assert_vector_equal_test();
+ vectors_are_equal_test();
generate_transmit_request_test();
parse_receive_packet_test();
+ parse_frame_parses_receive_packet_test();
+ parse_frame_parses_transmit_status_test();
+ parse_frame_parses_at_command_response_test();
}
-void assert_vector_equal_test()
+void vectors_are_equal_test()
{
vector<char> v1;
v1.push_back(1);
@@ -20,15 +23,27 @@
v2.push_back(1);
v2.push_back(2);
- assert_vector_equal(v1, v2);
+ vector<char> v3;
+ v3.push_back(1);
+ v3.push_back(2);
+ v3.push_back(3);
+
+ vector<char> v4;
+ v4.push_back(1);
+ v4.push_back(1);
+
+ assert(vectors_are_equal(v1, v2));
+
+ assert(!vectors_are_equal(v1, v3));
+ assert(!vectors_are_equal(v1, v4));
}
-void assert_vector_equal(const vector<char> v1, const vector<char> v2)
+bool vectors_are_equal(const vector<char> v1, const vector<char> v2)
{
- assert(v1.size() == v2.size());
+ if(v1.size() != v2.size()) return false;
const bool all_elements_are_equal = equal(v1.begin(), v1.end(), v2.begin());
- assert(all_elements_are_equal);
+ return all_elements_are_equal;
}
vector<char> construct_vector(const char* content, int length)
@@ -48,7 +63,7 @@
vector<char> actual_request = generate_transmit_request("Test", 4);
- assert_vector_equal(actual_request, expected_request);
+ assert(vectors_are_equal(actual_request, expected_request));
}
void parse_receive_packet_test()
@@ -61,5 +76,44 @@
vector<char> actual_message = parse_receive_packet(receive_packet);
- assert_vector_equal(actual_message, expected_message);
+ assert(vectors_are_equal(actual_message, expected_message));
+}
+
+void parse_frame_parses_receive_packet_test()
+{
+ const char frame_to_parse_array[] = {0x7E, 0x00, 0x10, 0x90, 0x00, 0x13, 0xA2, 0x00, 0x40, 0x86, 0xDA, 0x0E, 0x90, 0x1D, 0x01, 0x54, 0x65, 0x73, 0x74, 0xBE};
+ const vector<char> frame_to_parse = construct_vector(frame_to_parse_array, 20);
+
+ const char expected_parsed_frame_array[] = {FRAME_TYPE_RECEIVE_PACKET, 'T', 'e', 's', 't'};
+ const vector<char> expected_parsed_frame = construct_vector(expected_parsed_frame_array, 5);
+
+ const vector<char> actual_parsed_frame = parse_frame(frame_to_parse);
+
+ assert(vectors_are_equal(expected_parsed_frame, actual_parsed_frame));
+}
+
+void parse_frame_parses_transmit_status_test()
+{
+ const char frame_to_parse_array[] = {0x7E, 0x00, 0x07, 0x8B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73};
+ const vector<char> frame_to_parse = construct_vector(frame_to_parse_array, 11);
+
+ const char expected_parsed_frame_array[] = {FRAME_TYPE_TRANSMIT_STATUS, TRANSMIT_STATUS_SUCCESS};
+ const vector<char> expected_parsed_frame = construct_vector(expected_parsed_frame_array, 2);
+
+ const vector<char> actual_parsed_frame = parse_frame(frame_to_parse);
+
+ assert(vectors_are_equal(expected_parsed_frame, actual_parsed_frame));
+}
+
+void parse_frame_parses_at_command_response_test()
+{
+ const char frame_to_parse_array[] = {0x7E, 0x00, 0x05, 0x88, 0x01, 0x4E, 0x4A, 0x00, 0xDE};
+ const vector<char> frame_to_parse = construct_vector(frame_to_parse_array, 9);
+
+ const char expected_parsed_frame_array[] = {FRAME_TYPE_AT_COMMAND_RESPONSE, AT_COMMAND_RESPONSE_STATUS_OK};
+ const vector<char> expected_parsed_frame = construct_vector(expected_parsed_frame_array, 2);
+
+ const vector<char> actual_parsed_frame = parse_frame(frame_to_parse);
+
+ assert(vectors_are_equal(expected_parsed_frame, actual_parsed_frame));
}
\ No newline at end of file
