⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moretests.java

📁 Jena推理机
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 *  (c)     Copyright 2000, 2001, 2002, 2002, 2003, 2004, 2005, 2006, 2007 Hewlett-Packard Development Company, LP
 *   All rights reserved.
 * [See end of file]
 *  $Id: MoreTests.java,v 1.43 2007/01/02 11:49:14 andy_seaborne Exp $
 */

package com.hp.hpl.jena.rdf.arp.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InterruptedIOException;
import java.io.StringReader;
import java.nio.charset.Charset;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

import com.hp.hpl.jena.ontology.OntDocumentManager;
import com.hp.hpl.jena.rdf.arp.ALiteral;
import com.hp.hpl.jena.rdf.arp.ARP;
import com.hp.hpl.jena.rdf.arp.ARPErrorNumbers;
import com.hp.hpl.jena.rdf.arp.AResource;
import com.hp.hpl.jena.rdf.arp.ParseException;
import com.hp.hpl.jena.rdf.arp.StatementHandler;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.RDFErrorHandler;
import com.hp.hpl.jena.rdf.model.RDFReader;
import com.hp.hpl.jena.vocabulary.RDF;

/**
 * @author jjc
 *  
 */
public class MoreTests extends TestCase implements RDFErrorHandler,
		ARPErrorNumbers {
	static private Log logger = LogFactory.getLog(MoreTests.class);

	static public Test suite() {
		TestSuite suite = new TestSuite("ARP Plus");

		
		suite.addTest(TestErrorMsg.suite());

        suite.addTest(TestPropEltErrorMsg.suite());
		suite.addTest(TestScope.suite());
		suite.addTest(ExceptionTests.suite());
        
        suite.addTest(new MoreDOM2RDFTest("testDOMwithARP"));
	
		suite.addTest(new MoreTests("testIcu"));
		suite.addTest(new MoreTests("testLatin1"));
		suite.addTest(new MoreTests("testIcu2"));
		suite.addTest(new MoreTests("testEncodingMismatch1"));
		suite.addTest(new MoreTests("testEncodingMismatch2"));
		suite.addTest(new MoreTests("testNullBaseParamOK"));
		suite.addTest(new MoreTests("testNullBaseParamError"));
		suite.addTest(new MoreTests("testEmptyBaseParamOK"));
		suite.addTest(new MoreTests("testEmptyBaseParamError"));
        suite.addTest(new MoreTests("testBadBaseParamOK"));
        suite.addTest(new MoreTests("testBadBaseParamError"));
        suite.addTest(new MoreTests("testRelativeBaseParamOK"));
        suite.addTest(new MoreTests("testRelativeBaseParamError"));
        suite.addTest(new MoreTests("testBaseTruncation"));
		suite.addTest(new MoreTests("testWineDefaultNS"));
		suite.addTest(new MoreTests("testInterrupt"));
        suite.addTest(new MoreTests("testDanBriXMLBase"));
		suite.addTest(new MoreTests("testToString"));
		
//for (int i=0; i< 20; i++ ) {
		//suite.addTest(new MoreTests("testTokenGarbage1"));
		//suite.addTest(new MoreTests("testTokenGarbage2"));
//		suite.addTest(new MoreTests("testTokenGarbage1"));
//		suite.addTest(new MoreTests("testTokenGarbage2"));
//		suite.addTest(new MoreTests("testTokenGarbage1"));
//		suite.addTest(new MoreTests("testTokenGarbage2"));
//}
		return suite;
	}

	public MoreTests(String s) {
		super(s);
	}

	protected Model createMemModel() {
		return ModelFactory.createDefaultModel();
	}

	public void setUp() {
		// ensure the ont doc manager is in a consistent state
		OntDocumentManager.getInstance().reset(true);
	}

	public void testWineDefaultNS() throws IOException {
		testWineNS(createMemModel());
		testWineNS(ModelFactory.createOntologyModel());
	}

	private void testWineNS(Model m) throws FileNotFoundException, IOException {
		InputStream in = new FileInputStream("testing/arp/xmlns/wine.rdf");
		m.read(in, "");
		in.close();
		assertEquals("http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#", m
				.getNsPrefixURI(""));
	}

	public void testLatin1() throws IOException {
		Model m = createMemModel();
		RDFReader rdr = m.getReader();
		InputStream r = new FileInputStream(
				"testing/arp/i18n/latin1.rdf");
		
		rdr.setErrorHandler(this);
		expected = new int[] { WARN_NONCANONICAL_IANA_NAME };
		rdr.read(m, r, "http://example.org/");
		checkExpected();
	}
	public void testARPMacRoman() throws IOException {
		Model m = createMemModel();
		RDFReader rdr = m.getReader();
		InputStream r = new FileInputStream(
				"testing/arp/i18n/macroman.rdf");
		
		rdr.setErrorHandler(this);
		expected = new int[] { WARN_UNSUPPORTED_ENCODING, WARN_NON_IANA_ENCODING };
		expected[Charset.isSupported("MacRoman")?0:1]=0;
//		 Only one of the warnings is expected, which depends on Java version
		
		rdr.read(m, r, "http://example.org/");
		checkExpected();
	}
	public void testARPMacArabic() throws IOException {
		Model m = createMemModel();
		RDFReader rdr = m.getReader();
		InputStream r = new FileInputStream(
				"testing/arp/i18n/arabic-macarabic.rdf");
		
		rdr.setErrorHandler(this);
		expected = new int[] { WARN_UNSUPPORTED_ENCODING, WARN_NON_IANA_ENCODING };
		expected[Charset.isSupported("MacArabic")?0:1]=0;
//		 Only one of the warnings is expected, which depends on Java version
		rdr.read(m, r, "http://example.org/");
		checkExpected();
	}
	

	public void testEncodingMismatch1() throws IOException {
		Model m = createMemModel();
		RDFReader rdr = m.getReader();
		FileReader r = new FileReader(
				"testing/wg/rdfms-syntax-incomplete/test001.rdf");
		if (r.getEncoding().startsWith("UTF")) {
			System.err
					.println("WARNING: Encoding mismatch tests not executed on platform with default UTF encoding.");
			return;
		}
		rdr.setErrorHandler(this);
		expected = new int[] { WARN_ENCODING_MISMATCH };
		rdr.read(m, r, "http://example.org/");
		//System.err.println(m.size() + " triples read.");
		checkExpected();

	}

	public void testIcu() throws IOException {
//	  "\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
//	    Normalizer.  isNormalized(
//	            "\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
//	            ,Normalizer.NFC,0);
	    
		Model m = createMemModel();
		RDFReader rdr = m.getReader();
		FileInputStream r = new FileInputStream(
				"testing/arp/i18n/icubug.rdf");
	    rdr.setErrorHandler(this);
		expected = new int[] { WARN_STRING_COMPOSING_CHAR  };
		rdr.read(m, r, "http://example.org/");
		r.close();
		checkExpected();
	
	}
	public void testIcu2() throws IOException {
//		  "\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
//		    Normalizer.  isNormalized(
//		            "\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
//		            ,Normalizer.NFC,0);
		    
			Model m = createMemModel();
			RDFReader rdr = m.getReader();
			FileInputStream r = new FileInputStream(
					"testing/arp/i18n/icubugtwo.rdf");
			rdr.setErrorHandler(this);
			expected = new int[] { WARN_STRING_NOT_NORMAL_FORM_C };
			rdr.read(m, r, "http://example.org/");
			r.close();
			checkExpected();
		
		}
	static class ToStringStatementHandler implements StatementHandler {
		String obj;

		String subj;

		public void statement(AResource sub, AResource pred, ALiteral lit) {
			// System.out.println("(" + sub + ", " + pred + ", " + lit + ")");
			subj = sub.toString();
		}

		public void statement(AResource sub, AResource pred, AResource ob) {
			//  System.out.println("(" + sub + ", " + pred + ", " + ob + ")");
			obj = ob.toString();
		}

	}

	public void testToString() throws IOException, SAXException {

		String testcase = "<rdf:RDF xmlns:music=\"http://www.kanzaki.com/ns/music#\" "
				+ "  xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"> "
				+ "<rdf:Description> "
				+ "  <music:performs rdf:nodeID=\"p1\"/> "
				+ "</rdf:Description> "
				+ "<rdf:Description rdf:nodeID=\"p1\"> "
				+ "  <music:opus>op.26</music:opus> "
				+ "</rdf:Description> "
				+ "</rdf:RDF>";

		ARP parser = new ARP();
		ToStringStatementHandler tssh = new ToStringStatementHandler();
		parser.getHandlers().setStatementHandler(tssh);
		parser.load(new StringReader(testcase), "http://www.example.com");
		assertEquals(tssh.subj, tssh.obj);
	}

	public void testEncodingMismatch2() throws IOException {
		Model m = createMemModel();
		RDFReader rdr = m.getReader();
		FileReader r = new FileReader(
				"testing/wg/rdf-charmod-literals/test001.rdf");
		if (r.getEncoding().startsWith("UTF")) {
			// see above for warning message.
			return;
		}
		rdr.setErrorHandler(this);
		expected = new int[] { WARN_ENCODING_MISMATCH, ERR_ENCODING_MISMATCH, ERR_ENCODING_MISMATCH };
		rdr.read(m, r, "http://example.org/");

		checkExpected();
	}

	public void testNullBaseParamOK() throws IOException {
		Model m = createMemModel();
		Model m1 = createMemModel();
		RDFReader rdr = m.getReader();
		FileInputStream fin = new FileInputStream(
				"testing/wg/rdfms-identity-anon-resources/test001.rdf");

		rdr.setErrorHandler(this);
		expected = new int[] {};
		rdr.read(m, fin, "http://example.org/");
		fin.close();
		fin = new FileInputStream(
				"testing/wg/rdfms-identity-anon-resources/test001.rdf");
		rdr.read(m1, fin, null);
		fin.close();
		assertTrue("Base URI should have no effect.", m.isIsomorphicWith(m1));
		checkExpected();
	}
    public void testDanBriXMLBase() throws IOException {
        Model m = createMemModel();
        Model m1 = createMemModel();
        FileInputStream fin = new FileInputStream(
        "testing/arp/xmlbase/danbri.rdf");

        m.read(fin,"http://wrong.example.org/");
        fin.close();
        fin = new FileInputStream(
        "testing/arp/xmlbase/danbri.nt");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -