#include "ut_user_force.h" #include "..\..\src\logic\user_force.h" static int ut_user_force_btn(uint8_t prev_force, uint8_t up_act, uint8_t down_act, uint8_t delta, uint8_t exp_out) { uint8_t out = user_force_btn(prev_force, up_act, down_act, delta); printf("Prev-Force:%d Up-act:%d Down-act:%d Delta:%d\n", prev_force, up_act, down_act, delta); printf("Output:%d Expected:%d\n", out, exp_out); if(out==exp_out) { printf("PASS\n\n"); return 1; } else { printf("FAIL\n\n"); return 0; } } int ut_user_force_btn_test(void) { printf("******************************************************\n"); printf("uint8_t user_force_btn(uint8_t prev_force, uint8_t up_act, uint8_t down_act, uint8_t delta)\n"); int test_res; int pass = 1; uint8_t prev_force; uint8_t up_act; uint8_t down_act; uint8_t delta; uint8_t exp_out; // No change prev_force = 0; up_act = 0; down_act = 0; delta = 5; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = USER_FORCE_MIN_PERCENT-1; up_act = 0; down_act = 0; delta = 5; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 50; up_act = 0; down_act = 0; delta = 5; exp_out = 50; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = USER_FORCE_MAX_PERCENT+1; up_act = 0; down_act = 0; delta = 5; exp_out = 100; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 100; up_act = 0; down_act = 0; delta = 5; exp_out = 100; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; // Start 0 prev_force = 0; up_act = 1; down_act = 0; delta = 5; exp_out = USER_FORCE_MIN_PERCENT; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 0; up_act = 0; down_act = 1; delta = 5; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 0; up_act = 1; down_act = 1; delta = 5; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 0; up_act = 1; down_act = 0; delta = USER_FORCE_MIN_PERCENT+1; exp_out = USER_FORCE_MIN_PERCENT+1; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; // Start 100 prev_force = 100; up_act = 1; down_act = 0; delta = 5; exp_out = 100; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 100; up_act = 0; down_act = 1; delta = 5; exp_out = USER_FORCE_MAX_PERCENT; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 100; up_act = 1; down_act = 1; delta = 5; exp_out = USER_FORCE_MAX_PERCENT; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 100; up_act = 0; down_act = 1; delta = 100-USER_FORCE_MAX_PERCENT+1; exp_out = USER_FORCE_MAX_PERCENT-1; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; // Start 50 prev_force = 50; up_act = 1; down_act = 0; delta = 5; exp_out = 55; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 50; up_act = 0; down_act = 1; delta = 5; exp_out = 45; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 50; up_act = 1; down_act = 1; delta = 5; exp_out = 45; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 50; up_act = 1; down_act = 0; delta = 10; exp_out = 60; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 50; up_act = 0; down_act = 1; delta = 10; exp_out = 40; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; // Start MIN_PERCENT+1 prev_force = USER_FORCE_MIN_PERCENT+1; up_act = 1; down_act = 0; delta = 5; exp_out = prev_force+delta; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = USER_FORCE_MIN_PERCENT+1; up_act = 0; down_act = 1; delta = 5; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = USER_FORCE_MIN_PERCENT+1; up_act = 1; down_act = 1; delta = 5; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; // Start MAX_PERCENT-1 prev_force = USER_FORCE_MAX_PERCENT-1; up_act = 1; down_act = 0; delta = 5; exp_out = 100; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = USER_FORCE_MAX_PERCENT-1; up_act = 0; down_act = 1; delta = 5; exp_out = prev_force-delta; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = USER_FORCE_MAX_PERCENT-1; up_act = 1; down_act = 1; delta = 5; exp_out = prev_force-delta; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; // Up down seq prev_force = 0; up_act = 1; down_act = 0; delta = 20; exp_out = 20; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 20; up_act = 1; down_act = 0; delta = 20; exp_out = 40; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 40; up_act = 1; down_act = 0; delta = 20; exp_out = 60; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 60; up_act = 1; down_act = 0; delta = 20; exp_out = 80; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 80; up_act = 1; down_act = 0; delta = 20; exp_out = 100; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 100; up_act = 1; down_act = 0; delta = 20; exp_out = 100; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 100; up_act = 0; down_act = 1; delta = 20; exp_out = 80; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 80; up_act = 0; down_act = 1; delta = 20; exp_out = 60; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 60; up_act = 0; down_act = 1; delta = 20; exp_out = 40; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 40; up_act = 0; down_act = 1; delta = 20; exp_out = 20; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 20; up_act = 0; down_act = 1; delta = 20; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; prev_force = 0; up_act = 0; down_act = 1; delta = 20; exp_out = 0; test_res = ut_user_force_btn(prev_force, up_act, down_act, delta, exp_out); if(!test_res) pass = 0; return pass; } static int ut_user_force_pot(uint8_t prev_force, uint8_t pot, uint8_t hyst, uint8_t exp_out) { uint8_t out = user_force_pot(prev_force, pot, hyst); printf("Prev-Force:%d Pot-percent:%d Hysteresis:%d \n", prev_force, pot, hyst); printf("Output:%d Expected:%d\n", out, exp_out); if(out==exp_out) { printf("PASS\n\n"); return 1; } else { printf("FAIL\n\n"); return 0; } } int ut_user_force_pot_test(void) { printf("******************************************************\n"); printf("uint8_t user_force_pot(uint8_t prev_force, uint8_t pot, uint8_t hyst)\n"); int test_res; int pass = 1; uint8_t prev_force; uint8_t pot; uint8_t hyst; uint8_t exp_out; prev_force = 50; pot = 0; hyst = 10; exp_out = 0; test_res = ut_user_force_pot(prev_force, pot, hyst, exp_out); if(!test_res) pass = 0; prev_force = 50; pot = USER_FORCE_MIN_PERCENT-1; hyst = 10; exp_out = 0; test_res = ut_user_force_pot(prev_force, pot, hyst, exp_out); if(!test_res) pass = 0; prev_force = 50; pot = USER_FORCE_MIN_PERCENT; hyst = 10; exp_out = USER_FORCE_MIN_PERCENT; test_res = ut_user_force_pot(prev_force, pot, hyst, exp_out); if(!test_res) pass = 0; prev_force = 50; pot = 50; hyst = 10; exp_out = 50; test_res = ut_user_force_pot(prev_force, pot, hyst, exp_out); if(!test_res) pass = 0; prev_force = 50; pot = USER_FORCE_MAX_PERCENT; hyst = 10; exp_out = USER_FORCE_MAX_PERCENT; test_res = ut_user_force_pot(prev_force, pot, hyst, exp_out); if(!test_res) pass = 0; prev_force = 50; pot = USER_FORCE_MAX_PERCENT+1; hyst = 10; exp_out = 100; test_res = ut_user_force_pot(prev_force, pot, hyst, exp_out); if(!test_res) pass = 0; prev_force = 50; pot = 100; hyst = 10; exp_out = 100; test_res = ut_user_force_pot(prev_force, pot, hyst, exp_out); if(!test_res) pass = 0; return pass; }