/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jena.graph.compose.test; import java.util.*; import junit.framework.*; import org.apache.jena.graph.* ; import org.apache.jena.graph.compose.* ; import org.apache.jena.graph.test.* ; import org.apache.jena.util.iterator.* ; public abstract class TestDyadic extends AbstractTestGraph { public TestDyadic( String name ) { super( name ); } public static TestSuite suite() { return new TestSuite( TestDyadic.class ); } static private ExtendedIterator<String> things( final String x ) { return new NiceIterator<String>() { private StringTokenizer tokens = new StringTokenizer( x ); @Override public boolean hasNext() { return tokens.hasMoreTokens(); } @Override public String next() { return tokens.nextToken(); } }; } /** * Test the things() iterator generating utility function. */ public void testThings() { ExtendedIterator<String> it1 = things( "now is the time" ); ExtendedIterator<String> it2 = things( "now is the time" ); ExtendedIterator<String> mt1 = things( "" ); ExtendedIterator<String> mt2 = things( "" ); assertEquals( "mt1.hasNext()", false, mt1.hasNext() ); assertEquals( "mt2.hasNext()", false, mt2.hasNext() ); assertEquals( "andThen(mt1,mt2).hasNext()", false, mt1.andThen( mt2 ).hasNext() ); assertEquals( "butNot(it1,it2).hasNext()", false, CompositionBase.butNot( it1, it2 ).hasNext() ); assertEquals( "x y z @butNot z", true, CompositionBase.butNot( things( "x y z" ), things( "z" ) ).hasNext() ); assertEquals( "x y z @butNot a", true, CompositionBase.butNot( things( "x y z" ), things( "z" ) ).hasNext() ); } public void testDyadicOperands() { Graph g = Factory.createGraphMem(), h = Factory.createGraphMem(); Dyadic d = new Dyadic( g, h ) { @Override protected ExtendedIterator<Triple> _graphBaseFind( Triple m ) { return null; } }; assertSame( g, d.getL() ); assertSame( h, d.getR() ); } }