/**
* Replication Benchmarker
* https://github.com/score-team/replication-benchmarker/
* Copyright (C) 2013 LORIA / Inria / SCORE Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package jbenchmarker.logoot;
import org.junit.Ignore;
import java.util.ArrayList;
import jbenchmarker.factories.LogootFactory;
import jbenchmarker.factories.TreedocFactory;
import jbenchmarker.treedoc.TreedocMerge;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.Before;
/**
*
* @author mehdi
*/
public class BoundaryStrategyTest {
LogootDocument LD;
@Before
public void setUp() throws Exception {
LD = LogootFactory.createDoc(1, 64, 50);
}
//@Ignore
@Test
public void testgenerateLineIdentifiersCas1() {
System.out.println("Test Boundary Strategy...");
BoundaryStrategy BS = new BoundaryStrategy(64, 50);
LogootIdentifier P = new LogootIdentifier(2);
LogootIdentifier Q = new LogootIdentifier(2);
P.addComponent(new LogootComponent(100, 2, 105));
P.addComponent(new LogootComponent(980, 3, 107));
Q.addComponent(new LogootComponent(100, 4, 150));
Q.addComponent(new LogootComponent(990, 5, 152));
ArrayList<ListIdentifier> patch = BS.generateLineIdentifiers(LD, P, Q, 100);
assertEquals(100, patch.size());
for (int i = 1; i < patch.size(); i++) {
assertTrue(patch.get(i).compareTo(P) > 0);
assertTrue(patch.get(i).compareTo(patch.get(i - 1)) > 0);
assertTrue(patch.get(i).compareTo(Q) < 0);
}
}
//@Ignore
@Test
public void testgenerateLineIdentifiersCas2() {
BoundaryStrategy BS = new BoundaryStrategy(64, 50);
LogootIdentifier P = new LogootIdentifier(2);
LogootIdentifier Q = new LogootIdentifier(2);
P.addComponent(new LogootComponent(20, 4, 50));
P.addComponent(new LogootComponent(30, 4, 60));
P.addComponent(new LogootComponent(40, 4, 70));
Q.addComponent(new LogootComponent(20, 6, 60));
Q.addComponent(new LogootComponent(30, 6, 60));
Q.addComponent(new LogootComponent(40, 6, 60));
ArrayList<ListIdentifier> patch = BS.generateLineIdentifiers(LD, P, Q, 200);
assertEquals(200, patch.size());
for (int i = 1; i < patch.size(); i++) {
assertTrue(patch.get(i).compareTo(P) > 0);
assertTrue(patch.get(i).compareTo(patch.get(i - 1)) > 0);
assertTrue(patch.get(i).compareTo(Q) < 0);
}
}
//@Ignore
@Test
public void testgenerateLineIdentifiersCas3() {
BoundaryStrategy BS = new BoundaryStrategy(64, 50);
LogootIdentifier P = new LogootIdentifier(2);
LogootIdentifier Q = new LogootIdentifier(2);
P.addComponent(new LogootComponent(20, 4, 50));
P.addComponent(new LogootComponent(10, 6, 60));
Q.addComponent(new LogootComponent(20, 6, 60));
Q.addComponent(new LogootComponent(30, 4, 60));
Q.addComponent(new LogootComponent(40, 4, 70));
ArrayList<ListIdentifier> patch = BS.generateLineIdentifiers(LD, P, Q, 200);
assertEquals(200, patch.size());
for (int i = 1; i < patch.size(); i++) {
assertTrue(patch.get(i).compareTo(P) > 0);
assertTrue(patch.get(i).compareTo(patch.get(i - 1)) > 0);
assertFalse(patch.get(i).compareTo(Q) > 0);
}
}
//@Ignore
@Test
public void testgenerateLineIdentifiersCas4() {
BoundaryStrategy BS = new BoundaryStrategy(64, 50);
LogootIdentifier P = new LogootIdentifier(3);
LogootIdentifier Q = new LogootIdentifier(3);
P.addComponent(new LogootComponent(31256, 4, 50));
P.addComponent(new LogootComponent(31256, 6, 60));
P.addComponent(new LogootComponent(31256, 6, 60));
Q.addComponent(new LogootComponent(31256, 4, 50));
Q.addComponent(new LogootComponent(31256, 6, 60));
Q.addComponent(new LogootComponent(31257, 6, 60));
Q.addComponent(new LogootComponent(31256, 6, 60));
ArrayList<ListIdentifier> patch = BS.generateLineIdentifiers(LD, P, Q, 200);
assertEquals(200, patch.size());
for (int i = 1; i < patch.size(); i++) {
assertTrue(patch.get(i).compareTo(P) > 0);
assertTrue(patch.get(i).compareTo(patch.get(i - 1)) > 0);
assertFalse(patch.get(i).compareTo(Q) > 0);
}
}
//@Ignore
@Test
public void testgenerateLineIdentifiersCas5() {
BoundaryStrategy BS = new BoundaryStrategy(64,50);
LogootIdentifier P = new LogootIdentifier(3);
LogootIdentifier Q = new LogootIdentifier(3);
P.addComponent(new LogootComponent(31256, 4, 50));
P.addComponent(new LogootComponent(31256, 6, 60));
P.addComponent(new LogootComponent(31256, 6, 60));
P.addComponent(new LogootComponent(31256, 6, 60));
Q.addComponent(new LogootComponent(31256, 4, 50));
Q.addComponent(new LogootComponent(31256, 6, 60));
Q.addComponent(new LogootComponent(31256, 6, 60));
Q.addComponent(new LogootComponent(31256, 7, 60));
ArrayList<ListIdentifier> patch = BS.generateLineIdentifiers(LD, P, Q, 200);
assertEquals(200, patch.size());
for (int i = 1; i < patch.size(); i++) {
assertTrue(patch.get(i).compareTo(P) > 0);
assertTrue(patch.get(i).compareTo(patch.get(i - 1)) > 0);
assertFalse(patch.get(i).compareTo(Q) > 0);
}
}
//@Ignore
@Test
public void testgenerateLineIdentifiersCas6() {
BoundaryStrategy BS = new BoundaryStrategy(64,50);
LogootIdentifier P = new LogootIdentifier(3);
LogootIdentifier Q = new LogootIdentifier(3);
P.addComponent(new LogootComponent(31256, 4, 50));
P.addComponent(new LogootComponent(31256, 6, 60));
P.addComponent(new LogootComponent(31256, 6, 60));
P.addComponent(new LogootComponent(31255, 8, 60));
Q.addComponent(new LogootComponent(31256, 4, 50));
Q.addComponent(new LogootComponent(31256, 6, 60));
Q.addComponent(new LogootComponent(31256, 6, 60));
Q.addComponent(new LogootComponent(31256, 7, 60));
ArrayList<ListIdentifier> patch = BS.generateLineIdentifiers(LD, P, Q, 200);
assertEquals(200, patch.size());
for (int i = 1; i < patch.size(); i++) {
assertTrue(patch.get(i).compareTo(P) > 0);
assertTrue(patch.get(i).compareTo(patch.get(i - 1)) > 0);
assertFalse(patch.get(i).compareTo(Q) > 0);
}
}
//@Ignore
@Test
public void testgenerateLineIdentifiersCas7() {
BoundaryStrategy BS = new BoundaryStrategy(64, 50);
LogootIdentifier P = new LogootIdentifier(6);
LogootIdentifier Q = new LogootIdentifier(6);
LD.setClock(101);
P.addComponent(new LogootComponent(12, 8, 60));
P.addComponent(new LogootComponent(7, 8, 60));
P.addComponent(new LogootComponent(22, 8, 60));
Q.addComponent(new LogootComponent(12, 8, 60));
Q.addComponent(new LogootComponent(7, 8, 60));
Q.addComponent(new LogootComponent(22, 8, 60));
Q.addComponent(new LogootComponent(0, 1, 2));
Q.addComponent(new LogootComponent(0, 2, 10));
Q.addComponent(new LogootComponent(15, 11, 100));
ArrayList<ListIdentifier> patch = BS.generateLineIdentifiers(LD, P, Q, 2);
assertEquals(2, patch.size());
for (int i = 1; i < patch.size(); i++) {
assertTrue(patch.get(i).compareTo(P) > 0);
assertTrue(patch.get(i).compareTo(patch.get(i - 1)) > 0);
assertFalse(patch.get(i).compareTo(Q) > 0);
}
}
}