// Max and Min Functions and Unit Tests
// Emilie (Hermit Barber in World)
// Creative Commons: Attribution, Share-alike, Non Commecial
float Max(float x,float y)
{
return ( ( llAbs( x >= y ) ) * x ) + ( ( llAbs( x<y ) ) * y );
}
float Min(float x,float y)
{
return ( ( llAbs( x >= y ) ) * y ) + ( ( llAbs( x<y ) ) * x );
}
// Copy the above functions to your program - the balance is mereley a set of unit tests
say(string f, float x,float y, float z)
{
llOwnerSay("Testing " + f + " with input X: " + (string) x + " Input Y: " + (string) y + "Resulting in: " + (string) z);
}
default
{
state_entry()
{
string test = "MAX";
float ix = 0;
float iy = 0;
float iz = 0;
say(test,ix,iy,Max(ix,iy));
ix=100;iy=100;say(test,ix,iy,Max(ix,iy));
ix=-100;iy=100;say(test,ix,iy,Max(ix,iy));
ix=100;iy=-100;say(test,ix,iy,Max(ix,iy));
ix=-100;iy=-100;say(test,ix,iy,Max(ix,iy));
ix=-0.001;iy=0.00001;say(test,ix,iy,Max(ix,iy));
ix=0.001;iy=0.00001;say(test,ix,iy,Max(ix,iy));
ix=-0.001;iy=0.00001;say(test,ix,iy,Max(ix,iy));
ix=0.001;iy=-0.00001;say(test,ix,iy,Max(ix,iy));
ix=-0.001;iy=-0.00001;say(test,ix,iy,Max(ix,iy));
test = "MIN";
say(test,ix,iy,Min(ix,iy));
ix=100;iy=100;say(test,ix,iy,Min(ix,iy));
ix=-100;iy=100;say(test,ix,iy,Min(ix,iy));
ix=100;iy=-100;say(test,ix,iy,Min(ix,iy));
ix=-100;iy=-100;say(test,ix,iy,Min(ix,iy));
ix=0.001;iy=0.00001;say(test,ix,iy,Min(ix,iy));
ix=-0.001;iy=0.00001;say(test,ix,iy,Min(ix,iy));
ix=0.001;iy=-0.00001;say(test,ix,iy,Min(ix,iy));
ix=-0.001;iy=-0.00001;say(test,ix,iy,Min(ix,iy));
}
}
|