genericopenlibs/liboil/tsrc/testsuite/trans8x8/src/trans8x8.c
changeset 59 09fa7c3c5079
child 63 a117ad66e027
equal deleted inserted replaced
52:bf6a71c50e42 59:09fa7c3c5079
       
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <liboil/liboil.h>
       
    20 #include <liboil/liboilfunction.h>
       
    21 #include <stdio.h>
       
    22 #include <stdlib.h>
       
    23 
       
    24 #include <liboil/globals.h>
       
    25 
       
    26 #define LOG_FILE "c:\\logs\\testsuite_trans8x8_log.txt"
       
    27 #include "std_log_result.h"
       
    28 #include "utils.h"
       
    29 #define LOG_FILENAME_LINE __FILE__, __LINE__
       
    30 
       
    31 #define SIZE    8*8
       
    32 
       
    33 void create_xml(int result)
       
    34 {
       
    35     if(result)
       
    36         assert_failed = 1;
       
    37     
       
    38     testResultXml("testsuite_trans8x8");
       
    39     close_log_file();
       
    40 }
       
    41 
       
    42 void test_oil_trans8x8_f64()
       
    43     {
       
    44     //double * d_8x8, int ds, const double * s_8x8, int ss
       
    45     double output[SIZE];
       
    46     double input[SIZE];
       
    47     double linux_output[SIZE] = {77.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,88.000000000000000,0.000000000000000,0.000000000000000,-2.000000000007314,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000};
       
    48     int i = 0;
       
    49     
       
    50     for(i=0; i<SIZE; i++)
       
    51         {
       
    52         output[i] = 0;
       
    53         input[i] = i+(i*10);
       
    54         }
       
    55     
       
    56     oil_trans8x8_f64(output, 0, input, 2);
       
    57     
       
    58     for(i=0; i<SIZE; i++)
       
    59         {
       
    60         if(comparefloats(output[i], linux_output[i]))
       
    61             {
       
    62             std_log(LOG_FILENAME_LINE, "output[%d]: expected value - %d, actual value - %d", i,linux_output[i],output[i]);
       
    63             assert_failed = 1;
       
    64             }
       
    65         }
       
    66     }
       
    67 
       
    68 void test_oil_trans8x8_u16()
       
    69     {
       
    70     //uint16_t * d_8x8, int ds, const uint16_t * s_8x8, int ss
       
    71     uint16_t output[SIZE];
       
    72     uint16_t input[SIZE];
       
    73     uint16_t linux_output[SIZE] = {2816,8470,14124,19778,14124,19778,25432,31086,33792,36608,39424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
       
    74     int i = 0;
       
    75     
       
    76     for(i=0; i<SIZE; i++)
       
    77         {
       
    78         output[i] = 0;
       
    79         input[i] = i+(i*10);
       
    80         }
       
    81     
       
    82     oil_trans8x8_u16(output, 1, input, 2);
       
    83     
       
    84     for(i=0; i<SIZE; i++)
       
    85         {
       
    86         if(output[i] != linux_output[i])
       
    87             {
       
    88             std_log(LOG_FILENAME_LINE, "output[%d]: expected value - %d, actual value - %d", i,linux_output[i],output[i]);
       
    89             assert_failed = 1;
       
    90             }
       
    91         }
       
    92     }
       
    93 
       
    94 void test_oil_trans8x8_u32()
       
    95     {
       
    96     //uint32_t * d_8x8, int ds, const uint32_t * s_8x8, int ss
       
    97     uint32_t output[SIZE];
       
    98     uint32_t input[SIZE];
       
    99     uint32_t linux_output[SIZE] = {555092736,1296185132,0,1476417536,0,1660969728,0,1845521920,0,30976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
       
   100     int i = 0;
       
   101     
       
   102     for(i=0; i<SIZE; i++)
       
   103         {
       
   104         output[i] = 0;
       
   105         input[i] = i+(i*10);
       
   106         }
       
   107     
       
   108     oil_trans8x8_u32(output, 1, input, 2);
       
   109     
       
   110     for(i=0; i<SIZE; i++)
       
   111         {
       
   112         if(output[i] != linux_output[i])
       
   113             {
       
   114             std_log(LOG_FILENAME_LINE, "output[%d]: expected value - %d, actual value - %d", i,linux_output[i],output[i]);
       
   115             assert_failed = 1;
       
   116             }
       
   117         }
       
   118     }
       
   119 
       
   120 void test_oil_trans8x8_u8()
       
   121     {
       
   122     //uint8_t * d_8x8, int ds, const uint8_t * s_8x8, int ss
       
   123     uint8_t output[SIZE];
       
   124     uint8_t input[SIZE];
       
   125     uint8_t linux_output[SIZE] = {0,11,22,33,44,55,66,77,99,121,143,165,187,209,231,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
       
   126     int i = 0;
       
   127     
       
   128     for(i=0; i<SIZE; i++)
       
   129         {
       
   130         output[i] = 0;
       
   131         input[i] = i+(i*10);
       
   132         }
       
   133     
       
   134     oil_trans8x8_u8(output, 1, input, 2);
       
   135     
       
   136     for(i=0; i<SIZE; i++)
       
   137         {
       
   138         if(output[i] != linux_output[i])
       
   139             {
       
   140             std_log(LOG_FILENAME_LINE, "output[%d]: expected value - %d, actual value - %d", i,linux_output[i],output[i]);
       
   141             assert_failed = 1;
       
   142             }
       
   143         }
       
   144     }
       
   145 
       
   146 int main (int argc, char *argv[])
       
   147 {
       
   148   oil_init ();
       
   149 
       
   150   std_log(LOG_FILENAME_LINE,"START oil_trans8x8_f64 TEST");
       
   151   test_oil_trans8x8_f64();
       
   152   std_log(LOG_FILENAME_LINE,"END TEST\n");
       
   153   
       
   154   std_log(LOG_FILENAME_LINE,"START oil_trans8x8_u16 TEST");
       
   155   test_oil_trans8x8_u16(); // getting diff result than linux
       
   156   std_log(LOG_FILENAME_LINE,"END TEST\n");
       
   157   
       
   158   std_log(LOG_FILENAME_LINE,"START oil_trans8x8_u32 TEST");
       
   159   test_oil_trans8x8_u32();
       
   160   std_log(LOG_FILENAME_LINE,"END TEST\n");
       
   161   
       
   162   std_log(LOG_FILENAME_LINE,"START oil_trans8x8_u8 TEST");
       
   163   test_oil_trans8x8_u8();
       
   164   std_log(LOG_FILENAME_LINE,"END TEST\n");
       
   165   
       
   166   if(assert_failed)
       
   167       std_log(LOG_FILENAME_LINE,"Test Failed");
       
   168   else
       
   169       std_log(LOG_FILENAME_LINE,"Test Successful");
       
   170 
       
   171   create_xml(0);
       
   172   return 0;
       
   173 }
       
   174