Added unit test case (zdotu, N=1).
authorXianyi Zhang <xianyi@iscas.ac.cn>
Tue, 22 Feb 2011 06:16:46 +0000 (14:16 +0800)
committerXianyi Zhang <xianyi@iscas.ac.cn>
Tue, 22 Feb 2011 06:16:46 +0000 (14:16 +0800)
common_reference.h
utest/Makefile
utest/common_utest.h
utest/main.c
utest/test_dotu.c [new file with mode: 0644]

index 27a27a6..04b11f8 100644 (file)
@@ -55,4 +55,9 @@ void BLASFUNC_REF(daxpy) (blasint *, double *, double *, blasint *, double *, bl
 void BLASFUNC_REF(caxpy) (blasint *, float  *, float  *, blasint *, float  *, blasint *);
 void BLASFUNC_REF(zaxpy) (blasint *, double *, double *, blasint *, double *, blasint *);
 
+float   _Complex BLASFUNC_REF(cdotu)  (blasint *, float  *, blasint *, float  *, blasint *);
+float   _Complex BLASFUNC_REF(cdotc)  (blasint *, float  *, blasint *, float  *, blasint *);
+double  _Complex BLASFUNC_REF(zdotu)  (blasint *, double  *, blasint *, double  *, blasint *);
+double  _Complex BLASFUNC_REF(zdotc)  (blasint *, double  *, blasint *, double  *, blasint *);
+
 #endif
index defa2a7..9d512b8 100644 (file)
@@ -5,7 +5,7 @@ include $(TOPDIR)/Makefile.system
 TARGET=openblas_utest
 CUNIT_LIB=/usr/local/lib/libcunit.a
 
-OBJS=main.o test_rot.o test_swap.o test_axpy.o
+OBJS=main.o test_rot.o test_swap.o test_axpy.o test_dotu.o
 
 all : run_test
 
index 43c7f7f..6130033 100644 (file)
@@ -54,4 +54,6 @@ void test_zaxpy_inc_0(void);
 void test_saxpy_inc_0(void);
 void test_caxpy_inc_0(void);
 
+void test_zdotu_n_1(void);
+
 #endif
index ef4232d..c6fbd48 100644 (file)
@@ -52,6 +52,7 @@ CU_TestInfo test_level1[]={
        {"Testing caxpy with incx || incy == 0",test_caxpy_inc_0},
        {"Testing zaxpy with incx || incy == 0",test_zaxpy_inc_0},
 
+       {"Testing zdotu with n == 1",test_zdotu_n_1},
        CU_TEST_INFO_NULL,
 };
 
diff --git a/utest/test_dotu.c b/utest/test_dotu.c
new file mode 100644 (file)
index 0000000..bb720c8
--- /dev/null
@@ -0,0 +1,56 @@
+/*****************************************************************************
+Copyright (c) 2011, Lab of Parallel Software and Computational Science,ICSAS
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+   3. Neither the name of the ISCAS nor the names of its contributors may 
+      be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+**********************************************************************************/
+
+#include "common_utest.h"
+#include <complex.h>
+
+void test_zdotu_n_1(void)
+{
+       int N=1,incX=1,incY=1;
+       double x1[]={1.0,1.0};
+       double y1[]={1.0,2.0};
+       double x2[]={1.0,1.0};
+       double y2[]={1.0,2.0};
+       double _Complex result1=0.0;
+       double _Complex result2=0.0;
+       //OpenBLAS
+       result1=BLASFUNC(zdotu)(&N,x1,&incX,y1,&incY);
+       //reference
+       result2=BLASFUNC_REF(zdotu)(&N,x2,&incX,y2,&incY);
+
+       CU_ASSERT_DOUBLE_EQUAL(creal(result1), creal(result2), CHECK_EPS);
+       CU_ASSERT_DOUBLE_EQUAL(cimag(result1), cimag(result2), CHECK_EPS);
+//     printf("\%lf,%lf\n",creal(result1),cimag(result1));
+       
+}
+
+