Test Cases for Round Function

Write the test data for the function which takes input value as floating number and precision. It returns the output by rounding the value nearest to precision value.
e.g roundOff (3.4567,2) output will be 3.46.

To write Test Cases
1) Try to figure out the code or pseudo code
2) There can be several kind of testing but for simple question
     a. Positive Test Case (where code should result output)
     b. Negative Test Case (try to generate wrong output from code )
     c. Destructive Test Case ( Try to generate Error )

Thanks to Dhaval for suggesting this  code,  testcases and Article

Sample Code :
#include <stdio.h>
#include <math.h>

float round1 float num , int n){
    float temp, dec;
    num = num < 0 ? num - (1 / pow(10,n)) : num + 1 / pow(10,n);
    num = num * pow (10 , n );

    return (int) num / pow ( 10 , n );
}
int main(){
int n = 2;
printf("\n %f ",round1( 4.4567 , n ) );
return 0;
}
This may not be the perfect code but for testcases lets take this code.
Now
Test cases :
Think
1. Input/Output Tests
a)  if we give very large number to be stored in float number then ?
b) what if "n" is 0
c) what if n is too large to accommodate in int ? eg n =111000000000; (Boundry Value tests)
e) what if n is negative ?
f) Consider instead of numbers 4.4567 and n, String is passed. eg (4.456x7 , 2a)

2. Black box testing :  check proper (desired) output is printed // black box testing.

3. Stress Test
: What if this function get called by 10000 times together.

4.
 Destructive Test : what if pow(10,n) or any mathematical step gives memory error ?
    a) n is too large to generate pow (10,n) :  eg n = 10
    b) Both  "n" and "num"  are proper but num = num * pow (10 , n ); can generate exeception
     for round1(234244.45672,5);
    c) same for "Division"
    solution : Keep Try Catch block to handle exception and errors

Please Give ur feedback below and share information.