< prev index next >

test/jdk/jdk/incubator/vector/MethodOverideTest.java

Print this page
rev 54658 : refactored mask and shuffle creation methods, moved classes to top-level


  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @modules jdk.incubator.vector
  27  * @run testng MethodOverideTest
  28  *
  29  */
  30 
  31 import jdk.incubator.vector.ByteVector;
  32 import jdk.incubator.vector.DoubleVector;
  33 import jdk.incubator.vector.FloatVector;
  34 import jdk.incubator.vector.IntVector;
  35 import jdk.incubator.vector.Vector.Shape;

  36 import jdk.incubator.vector.ShortVector;
  37 import jdk.incubator.vector.Vector;
  38 import org.testng.Assert;
  39 import org.testng.annotations.DataProvider;
  40 import org.testng.annotations.Test;
  41 
  42 import java.lang.reflect.Field;
  43 import java.lang.reflect.Method;
  44 import java.lang.reflect.Modifier;
  45 import java.util.ArrayList;
  46 import java.util.List;
  47 import java.util.stream.Collectors;
  48 import java.util.stream.Stream;
  49 
  50 public class MethodOverideTest {
  51 
  52     @DataProvider
  53     public static Object[][] vectorClassesProvider() {
  54         return Stream.of(
  55                 ByteVector.class,
  56                 ShortVector.class,
  57                 IntVector.class,
  58                 FloatVector.class,
  59                 DoubleVector.class).
  60                 map(c -> new Object[]{c}).
  61                 toArray(Object[][]::new);
  62     }
  63 
  64     static List<Object> getConcreteSpeciesInstances(Class<?> primitiveVectorClass) {
  65         try {
  66             List<Object> csis = new ArrayList<>();
  67             for (Field sf : primitiveVectorClass.getFields()) {
  68                 if (Vector.Species.class.isAssignableFrom(sf.getType())) {
  69                     csis.add(sf.get(null));
  70                 }
  71             }
  72             return csis;
  73         }
  74         catch (ReflectiveOperationException e) {
  75             throw new InternalError(e);
  76         }
  77     }
  78 
  79     static List<Class<?>> getConcreteVectorClasses(Class<?> primitiveVectorClass) {
  80         try {
  81             List<Class<?>> cvcs = new ArrayList<>();
  82             for (Object speciesInstance : getConcreteSpeciesInstances(primitiveVectorClass)) {
  83                     Method zero = primitiveVectorClass.getMethod("zero", Vector.Species.class);
  84                     Object vectorInstance = zero.invoke(null, speciesInstance);
  85 
  86                     cvcs.add(vectorInstance.getClass());
  87             }
  88             return cvcs;
  89         }
  90         catch (ReflectiveOperationException e) {
  91             throw new InternalError(e);
  92         }
  93     }
  94 
  95     static List<Method> getDeclaredPublicAndNonAbstractMethods(Class<?> c) {
  96         return Stream.of(c.getDeclaredMethods()).
  97                 filter(cc -> Modifier.isPublic(cc.getModifiers())).
  98                 filter(cc -> !Modifier.isAbstract(cc.getModifiers())).
  99                 filter(cc -> !Modifier.isFinal(cc.getModifiers())).
 100                 filter(cc -> !cc.isSynthetic()).
 101                 collect(Collectors.toList());
 102     }
 103 




  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @modules jdk.incubator.vector
  27  * @run testng MethodOverideTest
  28  *
  29  */
  30 
  31 import jdk.incubator.vector.ByteVector;
  32 import jdk.incubator.vector.DoubleVector;
  33 import jdk.incubator.vector.FloatVector;
  34 import jdk.incubator.vector.IntVector;
  35 import jdk.incubator.vector.VectorShape;
  36 import jdk.incubator.vector.VectorSpecies;
  37 import jdk.incubator.vector.ShortVector;
  38 import jdk.incubator.vector.Vector;
  39 import org.testng.Assert;
  40 import org.testng.annotations.DataProvider;
  41 import org.testng.annotations.Test;
  42 
  43 import java.lang.reflect.Field;
  44 import java.lang.reflect.Method;
  45 import java.lang.reflect.Modifier;
  46 import java.util.ArrayList;
  47 import java.util.List;
  48 import java.util.stream.Collectors;
  49 import java.util.stream.Stream;
  50 
  51 public class MethodOverideTest {
  52 
  53     @DataProvider
  54     public static Object[][] vectorClassesProvider() {
  55         return Stream.of(
  56                 ByteVector.class,
  57                 ShortVector.class,
  58                 IntVector.class,
  59                 FloatVector.class,
  60                 DoubleVector.class).
  61                 map(c -> new Object[]{c}).
  62                 toArray(Object[][]::new);
  63     }
  64 
  65     static List<Object> getConcreteSpeciesInstances(Class<?> primitiveVectorClass) {
  66         try {
  67             List<Object> csis = new ArrayList<>();
  68             for (Field sf : primitiveVectorClass.getFields()) {
  69                 if (VectorSpecies.class.isAssignableFrom(sf.getType())) {
  70                     csis.add(sf.get(null));
  71                 }
  72             }
  73             return csis;
  74         }
  75         catch (ReflectiveOperationException e) {
  76             throw new InternalError(e);
  77         }
  78     }
  79 
  80     static List<Class<?>> getConcreteVectorClasses(Class<?> primitiveVectorClass) {
  81         try {
  82             List<Class<?>> cvcs = new ArrayList<>();
  83             for (Object speciesInstance : getConcreteSpeciesInstances(primitiveVectorClass)) {
  84                     Method zero = primitiveVectorClass.getMethod("zero", VectorSpecies.class);
  85                     Object vectorInstance = zero.invoke(null, speciesInstance);
  86 
  87                     cvcs.add(vectorInstance.getClass());
  88             }
  89             return cvcs;
  90         }
  91         catch (ReflectiveOperationException e) {
  92             throw new InternalError(e);
  93         }
  94     }
  95 
  96     static List<Method> getDeclaredPublicAndNonAbstractMethods(Class<?> c) {
  97         return Stream.of(c.getDeclaredMethods()).
  98                 filter(cc -> Modifier.isPublic(cc.getModifiers())).
  99                 filter(cc -> !Modifier.isAbstract(cc.getModifiers())).
 100                 filter(cc -> !Modifier.isFinal(cc.getModifiers())).
 101                 filter(cc -> !cc.isSynthetic()).
 102                 collect(Collectors.toList());
 103     }
 104 


< prev index next >