📄 testlist.java
字号:
assertNotNull( "as(RDFList) should not return null for root", l2 );
checkValid( "settail2", l2, true );
assertEquals( "l1 should have length 1", 1, l1.size() );
assertEquals( "l2 should have length 1", 1, l2.size() );
// use set tail to join the lists together
l1.setTail( l2 );
checkValid( "settail3", l1, true );
checkValid( "settail4", l2, true );
assertEquals( "l1 should have length 2", 2, l1.size() );
assertEquals( "l2 should have length 1", 1, l2.size() );
}
}
protected static class ConsTest extends ListTest {
public ConsTest() {super( "ConsTest" );}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
Resource root = m.createResource( NS + "root" );
Property p = m.createProperty( NS, "p");
Resource nil = m.getResource( RDF.nil.getURI() );
RDFList list = (RDFList) nil.as( RDFList.class );
Resource[] toAdd = new Resource[] {
m.createResource( NS + "e" ),
m.createResource( NS + "d" ),
m.createResource( NS + "c" ),
m.createResource( NS + "b" ),
m.createResource( NS + "a" ),
};
// cons each of these resources onto the front of the list
for (int i = 0; i < toAdd.length; i++) {
RDFList list0 = list.cons( toAdd[i] );
checkValid( "constest1", list0, true );
assertTrue( "cons'ed lists should not be equal", !list0.equals( list ) );
list = list0;
}
// relate the root to the list
m.add( root, p, list );
// should be isomorphic with list 5
Model m0 = ModelFactory.createDefaultModel();
m0.read( "file:testing/ontology/list5.rdf" );
assertTrue( "Cons'ed and read models should be the same", m0.isIsomorphicWith( m ) );
}
}
protected static class AddTest extends ListTest {
public AddTest() {super( "AddTest" );}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
Resource root = m.createResource( NS + "root" );
Property p = m.createProperty( NS, "p");
Resource nil = m.getResource( RDF.nil.getURI() );
RDFList list = (RDFList) nil.as( RDFList.class );
Resource[] toAdd = new Resource[] {
m.createResource( NS + "a" ),
m.createResource( NS + "b" ),
m.createResource( NS + "c" ),
m.createResource( NS + "d" ),
m.createResource( NS + "e" ),
};
// add each of these resources onto the end of the list
for (int i = 0; i < toAdd.length; i++) {
RDFList list0 = list.with( toAdd[i] );
checkValid( "addTest0", list0, true );
assertTrue( "added'ed lists should be equal", list.equals( nil ) || list0.equals( list ) );
list = list0;
}
// relate the root to the list
m.add( root, p, list );
// should be isomorphic with list 5
Model m0 = ModelFactory.createDefaultModel();
m0.read( "file:testing/ontology/list5.rdf" );
assertTrue( "Add'ed and read models should be the same", m0.isIsomorphicWith( m ) );
}
}
protected static class TestListGet extends ListTest {
public TestListGet() {super("TestListGet");}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
m.read( "file:testing/ontology/list5.rdf" );
Resource[] toGet = new Resource[] {
m.createResource( NS + "a" ),
m.createResource( NS + "b" ),
m.createResource( NS + "c" ),
m.createResource( NS + "d" ),
m.createResource( NS + "e" ),
};
RDFList l1 = getListRoot( m );
// test normal gets
for (int i = 0; i < toGet.length; i++) {
assertEquals( "list element " + i + " is not correct", toGet[i], l1.get( i ) );
}
// now test we get an exception for going beyong the end of the list
boolean gotEx = false;
try {
l1.get( toGet.length + 1 );
}
catch (ListIndexException e) {
gotEx = true;
}
assertTrue( "Should see exception raised by accessing beyond end of list", gotEx );
}
}
protected static class ReplaceTest extends ListTest {
public ReplaceTest() {super("ReplaceTest");}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
m.read( "file:testing/ontology/list5.rdf" );
Literal[] toSet = new Literal[] {
m.createLiteral( "a" ),
m.createLiteral( "b" ),
m.createLiteral( "c" ),
m.createLiteral( "d" ),
m.createLiteral( "e" ),
};
RDFList l1 = getListRoot( m );
// change all the values
for (int i = 0; i < toSet.length; i++) {
l1.replace( i, toSet[i] );
}
// then check them
for (int i = 0; i < toSet.length; i++) {
assertEquals( "list element " + i + " is not correct", toSet[i], l1.get( i ) );
}
// now test we get an exception for going beyong the end of the list
boolean gotEx = false;
try {
l1.replace( toSet.length + 1, toSet[0] );
}
catch (ListIndexException e) {
gotEx = true;
}
assertTrue( "Should see exception raised by accessing beyond end of list", gotEx );
}
}
protected static class IndexTest1 extends ListTest {
public IndexTest1() {super("IndexTest1");}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
m.read( "file:testing/ontology/list5.rdf" );
Resource[] toGet = new Resource[] {
m.createResource( NS + "a" ),
m.createResource( NS + "b" ),
m.createResource( NS + "c" ),
m.createResource( NS + "d" ),
m.createResource( NS + "e" ),
};
RDFList l1 = getListRoot( m );
// check the indexes are correct
for (int i = 0; i < toGet.length; i++) {
assertTrue( "list should contain element " + i, l1.contains( toGet[i] ) );
assertEquals( "list element " + i + " is not correct", i, l1.indexOf( toGet[i] ) );
}
}
}
protected static class IndexTest2 extends ListTest {
public IndexTest2() {super("IndexTest2");}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
Resource nil = m.getResource( RDF.nil.getURI() );
RDFList list = (RDFList) nil.as( RDFList.class );
Resource r = m.createResource( NS + "a" );
// cons each a's onto the front of the list
for (int i = 0; i < 10; i++) {
list = list.cons( r );
}
// now index them back again
for (int j = 0; j < 10; j++) {
assertEquals( "index of j'th item should be j", j, list.indexOf( r, j ) );
}
}
}
protected static class AppendTest extends ListTest {
public AppendTest() {super("AppendTest");}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
m.read( "file:testing/ontology/list5.rdf" );
Resource nil = m.getResource( RDF.nil.getURI() );
RDFList list = (RDFList) nil.as( RDFList.class );
Resource r = m.createResource( NS + "foo" );
// create a list of foos
for (int i = 0; i < 5; i++) {
list = list.cons( r );
}
int listLen = list.size();
// now append foos to the root list
RDFList root = getListRoot( m );
int rootLen = root.size();
RDFList appended = root.append( list );
// original list should be unchanged
checkValid( "appendTest0", root, true );
assertEquals( "Original list should be unchanged", rootLen, root.size() );
checkValid( "appendTest1", list, true );
assertEquals( "Original list should be unchanged", listLen, list.size() );
// new list should be length of combined
checkValid( "appendTest2", appended, true );
assertEquals( "Appended list not correct length", rootLen + listLen, appended.size() );
}
}
protected static class ConcatenateTest extends ListTest {
public ConcatenateTest() {super("ConcatenateTest");}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
m.read( "file:testing/ontology/list5.rdf" );
Resource nil = m.getResource( RDF.nil.getURI() );
RDFList list = (RDFList) nil.as( RDFList.class );
Resource r = m.createResource( NS + "foo" );
// create a list of foos
for (int i = 0; i < 5; i++) {
list = list.cons( r );
}
int listLen = list.size();
// now append foos to the root list
RDFList root = getListRoot( m );
int rootLen = root.size();
root.concatenate( list );
// original list should be unchanged
checkValid( "concatTest0", list, true );
assertEquals( "Original list should be unchanged", listLen, list.size() );
// but lhs list has changed
checkValid( "concatTest1", root, true );
assertEquals( "Root list should be new length", rootLen + listLen, root.size() );
}
}
protected static class ConcatenateTest2 extends ListTest {
public ConcatenateTest2() {super("ConcatenateTest2");}
public void runTest() {
Model m = ModelFactory.createDefaultModel();
m.read( "file:testing/ontology/list5.rdf" );
Resource a = m.createResource( NS + "a" );
// create a list of foos
Resource[] rs = new Resource[] {
m.createResource( NS + "b" ),
m.createResource( NS + "c" ),
m.createResource( NS + "d" ),
m.createResource( NS + "e" )
};
RDFList aList = m.createList().cons( a );
RDFList rsList = m.createList( rs );
// concatenate the above resources onto the empty list
aList.concatenate( rsList );
checkValid( "concatTest3", aList, true );
RDFList root = getListRoot( m );
assertTrue( "Constructed and loaded lists should be the same", aList.sameListAs( root ) );
}
}
protected static class ApplyTest extends ListTest {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -