You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/11/14 20:37:55 UTC
svn commit: r714114 -
/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java
Author: ogusakov
Date: Fri Nov 14 11:37:55 2008
New Revision: 714114
URL: http://svn.apache.org/viewvc?rev=714114&view=rev
Log:
added a singleVersionResolution test to assure that 2 could be replaced to 1 if parent is newer
Modified:
maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java
Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java?rev=714114&r1=714113&r2=714114&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java (original)
+++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java Fri Nov 14 11:37:55 2008
@@ -39,6 +39,30 @@
super.setUp();
}
//----------------------------------------------------------------------
+ public void testDedupe()
+ {
+ List<MetadataTreeNode> list = new ArrayList<MetadataTreeNode>();
+
+ list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
+ list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
+ list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
+ list.add( new MetadataTreeNode( new ArtifactMetadata("b:b:1"), null, null ) );
+ list.add( new MetadataTreeNode( new ArtifactMetadata("b:b:1"), null, null ) );
+ list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
+
+ DefaultSatSolver.removeDuplicateGAVs( list );
+
+ System.out.println(list);
+
+ assertEquals( 2, list.size() );
+ }
+
+
+ private int f( int a, int b )
+ {
+ return -a + b;
+ }
+ //----------------------------------------------------------------------
public void testOptimization()
throws SatException
{
@@ -159,7 +183,7 @@
System.out.print(" "+m[i]);
System.out.println("");
- assert res != null : "Failed to solve "+title;
+ assertNotNull( res );
System.out.print("Result:");
for( ArtifactMetadata md : res )
@@ -168,32 +192,86 @@
}
System.out.println("");
- assert res.size() == 3 : "result contains "+res.size()+" artifacts instead of 3";
- assert res.contains(a1) : "result does not contain "+a1;
+ assertEquals( 3, res.size() );
+
+ assertTrue( res.contains( a1 ) );
+ assertTrue( res.contains( b2 ) );
+ assertTrue( res.contains( c2 ) );
}
//----------------------------------------------------------------------
- public void testDedupe()
+ // b:b:1 - c:c:2
+ // /
+ // a:a:1
+ // \
+ // b:b:2 - c:c:1
+ //----------------------------------------------------------------------
+ public void testSingleVersionResolution()
+ throws SatException
{
- List<MetadataTreeNode> list = new ArrayList<MetadataTreeNode>();
+ title = "testSingleVersionResolution";
+ System.out.println("\n\n==========================\n"+title+"\n");
- list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
- list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
- list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
- list.add( new MetadataTreeNode( new ArtifactMetadata("b:b:1"), null, null ) );
- list.add( new MetadataTreeNode( new ArtifactMetadata("b:b:1"), null, null ) );
- list.add( new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
+ MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null )
+ .addQuery(b1)
+ .addQuery(b2)
+ ;
- DefaultSatSolver.removeDuplicateGAVs( list );
+ MetadataTreeNode nb1 = new MetadataTreeNode( b1, na1, b1 )
+ .addQuery( c2 )
+ ;
+ MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 )
+ .addQuery( c1 )
+ ;
- System.out.println(list);
+ MetadataTreeNode nc2 = new MetadataTreeNode( c2, nb1, c2 );
+
+ MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
- assertEquals( 2, list.size() );
- }
-
-
- private int f( int a, int b )
- {
- return -a + b;
+ na1
+ .addChild(nb1)
+ .addChild(nb2)
+ ;
+
+ nb1
+ .addChild(nc2)
+ ;
+
+ nb2
+ .addChild(nc1)
+ ;
+
+ List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>(2);
+ cl.add( new ClassicDepthComparator() );
+ cl.add( new ClassicVersionComparator() );
+
+ ss = (DefaultSatSolver) DefaultSatSolver.create(na1);
+
+ ss.applyPolicies( cl );
+
+ List<ArtifactMetadata> res = ss.solve();
+
+ int m[] = ss._solver.model();
+
+ System.out.print("model: " );
+
+ for( int i=0; i<m.length; i++ )
+ System.out.print(" "+m[i]);
+ System.out.println("");
+
+ assertNotNull( res );
+
+ System.out.print("Result:");
+ for( ArtifactMetadata md : res )
+ {
+ System.out.print(" "+md);
+ }
+ System.out.println("");
+
+ assertEquals( 3, res.size() );
+
+ assertTrue( res.contains( a1 ) );
+ assertTrue( res.contains( b2 ) );
+ assertTrue( res.contains( c1 ) );
}
//----------------------------------------------------------------------
//----------------------------------------------------------------------