Repo unification
This commit is contained in:
419
firmware/tests/ut_logic/ut_user_force.c
Normal file
419
firmware/tests/ut_logic/ut_user_force.c
Normal file
@@ -0,0 +1,419 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user