os/ossrv/genericopenlibs/liboil/tsrc/testsuite/trans8x8/src/trans8x8.c
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     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 expected_output[SIZE] = {2816,5643,8470,11297,14124,16951,19778,22605,28259,33913,39567,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] != expected_output[i])
    87             {
    88             std_log(LOG_FILENAME_LINE, "output[%d]: expected value - %d, actual value - %d", i,expected_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_u8 TEST");
   151   test_oil_trans8x8_u8();
   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_f64 TEST");
   163   test_oil_trans8x8_f64();
   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