diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/EnumComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/EnumComparator.java new file mode 100644 index 0000000000000000000000000000000000000000..8da925497e5cd4c575fb4dd0a081a194b233a6ee --- /dev/null +++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/EnumComparator.java @@ -0,0 +1,29 @@ +package lcsb.mapviewer.common.comparator; + +import java.awt.Color; +import java.util.Comparator; + +/** + * Comparator implementation for {@link Color} class. + * + * @author Piotr Gawron + * + */ +public class EnumComparator implements Comparator<Enum<?>> { + + @Override + public int compare(Enum arg0, Enum arg1) { + if (arg0 == null) { + if (arg1 == null) { + return 0; + } else { + return 1; + } + + } else if (arg1 == null) { + return -1; + } + return arg0.compareTo(arg1); + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/comparator/AllComparatorTests.java b/commons/src/test/java/lcsb/mapviewer/common/comparator/AllComparatorTests.java index ef661a1cc48fa5639b4357e1c350dac36e61b207..a82e7c0355fa06f80d2068eb7cbdc6e1bee0507e 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/comparator/AllComparatorTests.java +++ b/commons/src/test/java/lcsb/mapviewer/common/comparator/AllComparatorTests.java @@ -8,6 +8,7 @@ import org.junit.runners.Suite.SuiteClasses; @SuiteClasses({ BooleanComparatorTest.class, // ColorComparatorTest.class, // DoubleComparatorTest.class, // + EnumComparatorTest.class, // IntegerComparatorTest.class, // PointComparatorTest.class, // StringComparatorTest.class, // diff --git a/commons/src/test/java/lcsb/mapviewer/common/comparator/EnumComparatorTest.java b/commons/src/test/java/lcsb/mapviewer/common/comparator/EnumComparatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..58c410181b3c25facae0b2d24553fdc3c08b1e7f --- /dev/null +++ b/commons/src/test/java/lcsb/mapviewer/common/comparator/EnumComparatorTest.java @@ -0,0 +1,24 @@ +package lcsb.mapviewer.common.comparator; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import lcsb.mapviewer.common.MimeType; + +public class EnumComparatorTest { + + @Test + public void testEquals() { + EnumComparator comp = new EnumComparator(); + assertEquals(0, comp.compare(MimeType.CSS, MimeType.CSS)); + } + + @Test + public void testDifferent() { + EnumComparator comp = new EnumComparator(); + assertTrue(0 != comp.compare(MimeType.CSS, MimeType.JPG)); + } + +} diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java index 4b7a71ad3812c18a195dd0c6d21a8487f314ae2c..d37d8b22910a60238855202514a7549d51f655a0 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java @@ -52,7 +52,7 @@ public class SbmlFunction implements Serializable, SbmlArgument { private String functionId; private String name; - + @Column(columnDefinition = "TEXT") private String definition; @@ -105,5 +105,8 @@ public class SbmlFunction implements Serializable, SbmlArgument { this.definition = definition; } + public void addArgument(String argument) { + arguments.add(argument); + } } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java new file mode 100644 index 0000000000000000000000000000000000000000..30de968a0329cd5c4d0539c5fb39af372d7f03ac --- /dev/null +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java @@ -0,0 +1,35 @@ +package lcsb.mapviewer.model.map.kinetics; + +import lcsb.mapviewer.common.Comparator; +import lcsb.mapviewer.common.comparator.StringComparator; +import lcsb.mapviewer.common.comparator.StringListComparator; + +public class SbmlFunctionComparator extends Comparator<SbmlFunction> { + + protected SbmlFunctionComparator() { + super(SbmlFunction.class); + } + + @Override + protected int internalCompare(SbmlFunction arg0, SbmlFunction arg1) { + StringComparator stringComparator = new StringComparator(); + StringListComparator stringListComparator = new StringListComparator(); + if (stringComparator.compare(arg0.getFunctionId(), arg1.getFunctionId()) != 0) { + return stringComparator.compare(arg0.getFunctionId(), arg1.getFunctionId()); + } + if (stringComparator.compare(arg0.getName(), arg1.getName()) != 0) { + return stringComparator.compare(arg0.getName(), arg1.getName()); + } + + if (stringComparator.compare(arg0.getDefinition(), arg1.getDefinition()) != 0) { + return stringComparator.compare(arg0.getDefinition(), arg1.getDefinition()); + } + + if (stringListComparator.compare(arg0.getArguments(), arg1.getArguments()) != 0) { + return stringListComparator.compare(arg0.getArguments(), arg1.getArguments()); + } + + return 0; + } + +} diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java index 9a4f29f710663a9d7c9a4b2ae05db811ca157649..f02ad1316a93b416f141dfc982afc155af956895 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java @@ -4,7 +4,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import javax.persistence.Column; @@ -53,7 +52,7 @@ public class SbmlKinetics implements Serializable { @OneToMany(mappedBy = "model", orphanRemoval = true) private Set<SbmlFunction> functions = new HashSet<>(); - private List<Element> elements = new ArrayList<>(); + private Set<Element> elements = new HashSet<>(); /** * Unique database identifier. @@ -142,4 +141,8 @@ public class SbmlKinetics implements Serializable { return functions; } + public Set<Element> getElements() { + return elements; + } + } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java index bee84ba436b5eca70e93e39edd477c841377f504..f8e8f30a488918c69496f639d14c0e5ee72dc0f0 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java @@ -1,6 +1,10 @@ package lcsb.mapviewer.model.map.kinetics; import lcsb.mapviewer.common.Comparator; +import lcsb.mapviewer.common.comparator.SetComparator; +import lcsb.mapviewer.common.comparator.StringComparator; +import lcsb.mapviewer.model.map.species.Element; +import lcsb.mapviewer.model.map.species.ElementComparator; public class SbmlKineticsComparator extends Comparator<SbmlKinetics> { @@ -10,6 +14,22 @@ public class SbmlKineticsComparator extends Comparator<SbmlKinetics> { @Override protected int internalCompare(SbmlKinetics arg0, SbmlKinetics arg1) { + SetComparator<SbmlFunction> functionComparator = new SetComparator<>(new SbmlFunctionComparator()); + if (functionComparator.compare(arg0.getFunctions(), arg1.getFunctions()) != 0) { + return functionComparator.compare(arg0.getFunctions(), arg1.getFunctions()); + } + SetComparator<SbmlParameter> parameterComparator = new SetComparator<>(new SbmlParameterComparator()); + if (parameterComparator.compare(arg0.getParameters(), arg1.getParameters()) != 0) { + return parameterComparator.compare(arg0.getParameters(), arg1.getParameters()); + } + SetComparator<Element> elementComparator = new SetComparator<>(new ElementComparator()); + if (elementComparator.compare(arg0.getElements(), arg1.getElements()) != 0) { + return elementComparator.compare(arg0.getElements(), arg1.getElements()); + } + StringComparator stringComparator = new StringComparator(); + if (stringComparator.compare(arg0.getDefinition(), arg1.getDefinition()) != 0) { + return stringComparator.compare(arg0.getDefinition(), arg1.getDefinition()); + } return 0; } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java index 2f8bd963053c1df5867879a4a2f00971a93694ed..5d535f7cd35ae75ab02e565f0ca0fd03662a0e69 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java @@ -61,10 +61,6 @@ public class SbmlParameter implements Serializable, SbmlArgument { this.parameterId = parameterId; } - public void setFunctionId(String parameterId) { - this.parameterId = parameterId; - } - public String getName() { return name; } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameterComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameterComparator.java new file mode 100644 index 0000000000000000000000000000000000000000..6590704a43f4a45a92a639cbc3b795168f2c4a82 --- /dev/null +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameterComparator.java @@ -0,0 +1,36 @@ +package lcsb.mapviewer.model.map.kinetics; + +import lcsb.mapviewer.common.Comparator; +import lcsb.mapviewer.common.comparator.DoubleComparator; +import lcsb.mapviewer.common.comparator.StringComparator; + +public class SbmlParameterComparator extends Comparator<SbmlParameter> { + + protected SbmlParameterComparator() { + super(SbmlParameter.class); + } + + @Override + protected int internalCompare(SbmlParameter arg0, SbmlParameter arg1) { + StringComparator stringComparator = new StringComparator(); + DoubleComparator doubleComparator = new DoubleComparator(); + SbmlUnitComparator unitComparator = new SbmlUnitComparator(); + if (stringComparator.compare(arg0.getParameterId(), arg1.getParameterId()) != 0) { + return stringComparator.compare(arg0.getParameterId(), arg1.getParameterId()); + } + if (stringComparator.compare(arg0.getName(), arg1.getName()) != 0) { + return stringComparator.compare(arg0.getName(), arg1.getName()); + } + + if (doubleComparator.compare(arg0.getValue(), arg1.getValue()) != 0) { + return doubleComparator.compare(arg0.getValue(), arg1.getValue()); + } + + if (unitComparator.compare(arg0.getUnits(), arg1.getUnits()) != 0) { + return unitComparator.compare(arg0.getUnits(), arg1.getUnits()); + } + + return 0; + } + +} diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java index 38d63472528b91c45ad523add85f81fba17530b2..004f9c533bf74b1772d239bf779bb18db618fc06 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java @@ -1,8 +1,9 @@ package lcsb.mapviewer.model.map.kinetics; import java.io.Serializable; -import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; @@ -48,7 +49,7 @@ public class SbmlUnit implements Serializable { private String unitId; private String name; - private List<SbmlUnitTypeFactor> unitTypeFactors = new ArrayList<>(); + private Set<SbmlUnitTypeFactor> unitTypeFactors = new HashSet<>(); /** * Constructor required by hibernate. @@ -81,7 +82,7 @@ public class SbmlUnit implements Serializable { unitTypeFactors.add(factor); } - public List<SbmlUnitTypeFactor> getUnitTypeFactors() { + public Set<SbmlUnitTypeFactor> getUnitTypeFactors() { return unitTypeFactors; } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparator.java new file mode 100644 index 0000000000000000000000000000000000000000..4ac63392e0b22c1ad915e425f394ef71ee3fede8 --- /dev/null +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparator.java @@ -0,0 +1,38 @@ +package lcsb.mapviewer.model.map.kinetics; + +import lcsb.mapviewer.common.Comparator; +import lcsb.mapviewer.common.comparator.SetComparator; +import lcsb.mapviewer.common.comparator.StringComparator; + +public class SbmlUnitComparator extends Comparator<SbmlUnit> { + + protected SbmlUnitComparator() { + super(SbmlUnit.class); + } + + @Override + protected int internalCompare(SbmlUnit arg0, SbmlUnit arg1) { + StringComparator stringComparator = new StringComparator(); + SetComparator<SbmlUnitTypeFactor> unitTypeFactorComparator = new SetComparator<>( + new SbmlUnitTypeFactorComparator()); + if (stringComparator.compare(arg0.getUnitId(), arg1.getUnitId()) != 0) { + return stringComparator.compare(arg0.getUnitId(), arg1.getUnitId()); + } + if (stringComparator.compare(arg0.getName(), arg1.getName()) != 0) { + return stringComparator.compare(arg0.getName(), arg1.getName()); + } + + if (unitTypeFactorComparator.compare(arg0.getUnitTypeFactors(), arg1.getUnitTypeFactors()) != 0) { + return unitTypeFactorComparator.compare(arg0.getUnitTypeFactors(), arg1.getUnitTypeFactors()); + } + // + // if (stringListComparator.compare(arg0.getArguments(), arg1.getArguments()) != + // 0) { + // return stringListComparator.compare(arg0.getArguments(), + // arg1.getArguments()); + // } + + return 0; + } + +} diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactorComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactorComparator.java new file mode 100644 index 0000000000000000000000000000000000000000..c585a94b81b67e8ae7f04697f9d9442ea5fa5d12 --- /dev/null +++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactorComparator.java @@ -0,0 +1,37 @@ +package lcsb.mapviewer.model.map.kinetics; + +import lcsb.mapviewer.common.Comparator; +import lcsb.mapviewer.common.comparator.DoubleComparator; +import lcsb.mapviewer.common.comparator.EnumComparator; +import lcsb.mapviewer.common.comparator.IntegerComparator; + +public class SbmlUnitTypeFactorComparator extends Comparator<SbmlUnitTypeFactor> { + + protected SbmlUnitTypeFactorComparator() { + super(SbmlUnitTypeFactor.class); + } + + @Override + protected int internalCompare(SbmlUnitTypeFactor arg0, SbmlUnitTypeFactor arg1) { + IntegerComparator integerComparator = new IntegerComparator(); + DoubleComparator doubleComparator = new DoubleComparator(); + EnumComparator enumComparator = new EnumComparator(); + if (integerComparator.compare(arg0.getExponent(), arg1.getExponent()) != 0) { + return integerComparator.compare(arg0.getExponent(), arg1.getExponent()); + } + if (integerComparator.compare(arg0.getScale(), arg1.getScale()) != 0) { + return integerComparator.compare(arg0.getScale(), arg1.getScale()); + } + + if (doubleComparator.compare(arg0.getMultiplier(), arg1.getMultiplier()) != 0) { + return doubleComparator.compare(arg0.getMultiplier(), arg1.getMultiplier()); + } + + if (enumComparator.compare(arg0.getUnitType(), arg1.getUnitType()) != 0) { + return enumComparator.compare(arg0.getUnitType(), arg1.getUnitType()); + } + + return 0; + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/AllKineticsTests.java b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/AllKineticsTests.java index 956076bdf28df445a890d95ddc35d956a77c8930..5509035aac6c8c93a2ea1ca8af66b80a09dd504f 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/AllKineticsTests.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/AllKineticsTests.java @@ -6,10 +6,16 @@ import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({ SbmlFunctionTest.class, // + SbmlFunctionComparatorTest.class, // SbmlKineticsTest.class, // + SbmlKineticsComparatorTest.class, // SbmlParameterTest.class, // + SbmlParameterComparatorTest.class, // SbmlUnitTest.class, // - SbmlUnitTypeFactorTest.class }) + SbmlUnitComparatorTest.class, // + SbmlUnitTypeFactorTest.class,// + SbmlUnitTypeFactorComparatorTest.class, // + }) public class AllKineticsTests { } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..dd6e4d9f6ac6ad5ca6cdea145795fca85c0f8441 --- /dev/null +++ b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparatorTest.java @@ -0,0 +1,59 @@ +package lcsb.mapviewer.model.map.kinetics; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class SbmlFunctionComparatorTest { + SbmlFunctionComparator comparator = new SbmlFunctionComparator(); + + @Test + public void testCompareEqual() { + SbmlFunction Function = createFunction(); + SbmlFunction Function2 = createFunction(); + assertEquals(0, comparator.compare(Function, Function2)); + } + + @Test + public void testCompareDifferentFunctionId() { + SbmlFunction function = createFunction(); + SbmlFunction function2 = createFunction(); + function.setFunctionId("xxx"); + assertTrue("Function object have different id but comparison returned equal", + comparator.compare(function, function2) != 0); + } + + @Test + public void testCompareDifferentName() { + SbmlFunction function = createFunction(); + SbmlFunction function2 = createFunction(); + function.setName("xxx"); + assertTrue("Function object have different name but comparison returned equal", + comparator.compare(function, function2) != 0); + } + + @Test + public void testCompareDifferentDefinition() { + SbmlFunction function = createFunction(); + SbmlFunction function2 = createFunction(); + function.setDefinition("xxx"); + assertTrue("Function object have different name but comparison returned equal", + comparator.compare(function, function2) != 0); + } + + @Test + public void testCompareDifferentArguments() { + SbmlFunction function = createFunction(); + SbmlFunction function2 = createFunction(); + function.addArgument("x"); + assertTrue("Function object have different name but comparison returned equal", + comparator.compare(function, function2) != 0); + } + + private SbmlFunction createFunction() { + SbmlFunction result = new SbmlFunction("fun_id"); + return result; + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..6528daf0d83126caed16ef043850ce75a17a966d --- /dev/null +++ b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparatorTest.java @@ -0,0 +1,65 @@ +package lcsb.mapviewer.model.map.kinetics; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import lcsb.mapviewer.model.map.species.GenericProtein; + +public class SbmlKineticsComparatorTest { + SbmlKineticsComparator comparator = new SbmlKineticsComparator(); + + @Test + public void testCompareEqual() { + SbmlKinetics kinetics = createKinetics(); + SbmlKinetics kinetics2 = createKinetics(); + assertEquals(0, comparator.compare(kinetics, kinetics2)); + } + + @Test + public void testCompareDifferentFunction() { + SbmlKinetics kinetics = createKinetics(); + SbmlKinetics kinetics2 = createKinetics(); + kinetics2.getFunctions().iterator().next().setFunctionId("new_fun_id"); + assertTrue("Kinetics object have different functions but comparison returned equal", + comparator.compare(kinetics, kinetics2) != 0); + } + + @Test + public void testCompareDifferentParameters() { + SbmlKinetics kinetics = createKinetics(); + SbmlKinetics kinetics2 = createKinetics(); + kinetics2.getParameters().iterator().next().setParameterId("new_fun_id"); + assertTrue("Kinetics object have different functions but comparison returned equal", + comparator.compare(kinetics, kinetics2) != 0); + } + + @Test + public void testCompareDifferentDefinition() { + SbmlKinetics kinetics = createKinetics(); + SbmlKinetics kinetics2 = createKinetics(); + kinetics2.setDefinition("xxx"); + assertTrue("Kinetics object have different definition but comparison returned equal", + comparator.compare(kinetics, kinetics2) != 0); + } + + @Test + public void testCompareDifferentElements() { + SbmlKinetics kinetics = createKinetics(); + SbmlKinetics kinetics2 = createKinetics(); + kinetics2.addElement(new GenericProtein("x1")); + assertTrue("Kinetics object have different elements but comparison returned equal", + comparator.compare(kinetics, kinetics2) != 0); + } + + private SbmlKinetics createKinetics() { + SbmlKinetics result = new SbmlKinetics(); + result.addElement(new GenericProtein("protein_id")); + result.addFunction(new SbmlFunction("fun_id")); + result.addParameter(new SbmlParameter("param_id")); + result.setDefinition("<xml/>"); + return result; + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlParameterComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlParameterComparatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e803cbd9caa17af6cf9d097206bdc1104bcece36 --- /dev/null +++ b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlParameterComparatorTest.java @@ -0,0 +1,58 @@ +package lcsb.mapviewer.model.map.kinetics; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class SbmlParameterComparatorTest { + SbmlParameterComparator comparator = new SbmlParameterComparator(); + + private SbmlParameter createParameter() { + SbmlParameter result = new SbmlParameter("param_id"); + return result; + } + + @Test + public void testCompareEqual() { + SbmlParameter parameter = createParameter(); + SbmlParameter parameter2 = createParameter(); + assertEquals(0, comparator.compare(parameter, parameter2)); + } + + @Test + public void testCompareDifferentParameterId() { + SbmlParameter parameter = createParameter(); + SbmlParameter parameter2 = createParameter(); + parameter.setParameterId("xxx"); + assertTrue("Parameter object have different id but comparison returned equal", + comparator.compare(parameter, parameter2) != 0); + } + + @Test + public void testCompareDifferentName() { + SbmlParameter parameter = createParameter(); + SbmlParameter parameter2 = createParameter(); + parameter.setName("xxx"); + assertTrue("Parameter object have different name but comparison returned equal", + comparator.compare(parameter, parameter2) != 0); + } + + @Test + public void testCompareDifferentDefinition() { + SbmlParameter parameter = createParameter(); + SbmlParameter parameter2 = createParameter(); + parameter.setValue(13.0); + assertTrue("Parameter object have different value but comparison returned equal", + comparator.compare(parameter, parameter2) != 0); + } + + @Test + public void testCompareDifferentArguments() { + SbmlParameter parameter = createParameter(); + SbmlParameter parameter2 = createParameter(); + parameter.setUnits(new SbmlUnit("x")); + assertTrue("Parameter object have different unit but comparison returned equal", + comparator.compare(parameter, parameter2) != 0); + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..284f89a936d656c2a893fef7dcc6353e27f5bd6f --- /dev/null +++ b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparatorTest.java @@ -0,0 +1,46 @@ +package lcsb.mapviewer.model.map.kinetics; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class SbmlUnitComparatorTest { + SbmlUnitComparator comparator = new SbmlUnitComparator(); + + private SbmlUnit createUnit() { + SbmlUnit result = new SbmlUnit("unit_id"); + return result; + } + + @Test + public void testCompareEqual() { + SbmlUnit parameter = createUnit(); + SbmlUnit parameter2 = createUnit(); + assertEquals(0, comparator.compare(parameter, parameter2)); + } + + @Test + public void testCompareUnitId() { + SbmlUnit parameter = createUnit(); + SbmlUnit parameter2 = createUnit(); + parameter.setUnitId("xxx"); + assertTrue(0 != comparator.compare(parameter, parameter2)); + } + + @Test + public void testCompareName() { + SbmlUnit parameter = createUnit(); + SbmlUnit parameter2 = createUnit(); + parameter.setName("xxx"); + assertTrue(0 != comparator.compare(parameter, parameter2)); + } + + @Test + public void testCompareUnitTypes() { + SbmlUnit parameter = createUnit(); + SbmlUnit parameter2 = createUnit(); + parameter.addUnitTypeFactor(new SbmlUnitTypeFactor(SbmlUnitType.AMPERE, 1, 1, 1));; + assertTrue(0 != comparator.compare(parameter, parameter2)); + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTest.java b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTest.java index a6cdd5328b0126b3c47c9c3444b7be5dbe62e0ab..3e1d4e4f8785f4ac012ae54f058805b6cde06777 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTest.java @@ -27,7 +27,7 @@ public class SbmlUnitTest { SbmlUnit unit = new SbmlUnit(""); unit.addUnitTypeFactor(factor); assertEquals(unit.getUnitTypeFactors().size(), 1); - assertEquals(unit.getUnitTypeFactors().get(0), factor); + assertEquals(unit.getUnitTypeFactors().iterator().next(), factor); } } diff --git a/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactorComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactorComparatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f7a9e32159d83caafa499c76476e75ec0740bb41 --- /dev/null +++ b/model/src/test/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactorComparatorTest.java @@ -0,0 +1,60 @@ +package lcsb.mapviewer.model.map.kinetics; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class SbmlUnitTypeFactorComparatorTest { + + SbmlUnitTypeFactorComparator comparator = new SbmlUnitTypeFactorComparator(); + + private SbmlUnitTypeFactor createUnitTypeFactor() { + SbmlUnitTypeFactor result = new SbmlUnitTypeFactor(SbmlUnitType.AMPERE, 1, 1, 1); + return result; + } + + @Test + public void testCompareEqual() { + SbmlUnitTypeFactor parameter = createUnitTypeFactor(); + SbmlUnitTypeFactor parameter2 = createUnitTypeFactor(); + assertEquals(0, comparator.compare(parameter, parameter2)); + } + + @Test + public void testCompareDifferentUnitType() { + SbmlUnitTypeFactor parameter = createUnitTypeFactor(); + SbmlUnitTypeFactor parameter2 = createUnitTypeFactor(); + parameter.setUnitType(SbmlUnitType.BECQUEREL); + assertTrue(0 != comparator.compare(parameter, parameter2)); + assertTrue(0 != comparator.compare(parameter2, parameter)); + } + + @Test + public void testCompareDifferentExponent() { + SbmlUnitTypeFactor parameter = createUnitTypeFactor(); + SbmlUnitTypeFactor parameter2 = createUnitTypeFactor(); + parameter.setExponent(2); + assertTrue(0 != comparator.compare(parameter, parameter2)); + assertTrue(0 != comparator.compare(parameter2, parameter)); + } + + @Test + public void testCompareDifferentMultiplier() { + SbmlUnitTypeFactor parameter = createUnitTypeFactor(); + SbmlUnitTypeFactor parameter2 = createUnitTypeFactor(); + parameter.setMultiplier(2); + assertTrue(0 != comparator.compare(parameter, parameter2)); + assertTrue(0 != comparator.compare(parameter2, parameter)); + } + + @Test + public void testCompareDifferentScale() { + SbmlUnitTypeFactor parameter = createUnitTypeFactor(); + SbmlUnitTypeFactor parameter2 = createUnitTypeFactor(); + parameter.setScale(3); + assertTrue(0 != comparator.compare(parameter, parameter2)); + assertTrue(0 != comparator.compare(parameter2, parameter)); + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java b/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java index aa53199703a30f5f0e014af4166f89aa7cbeed29..1593310311473a379dcfac70b6c245798c82dd02 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java @@ -36,372 +36,377 @@ import lcsb.mapviewer.model.map.species.Species; public class ReactionTest extends ModelTestFunctions { - Logger logger = Logger.getLogger(ReactantTest.class); - - private Species species; - - @Before - public void setUp() throws Exception { - species = new GenericProtein("sa1"); - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testContainsElement() { - try { - Reaction reaction = new Reaction(); - assertFalse(reaction.containsElement(species)); - Modifier modifier = new Catalysis(species); - reaction.addModifier(modifier); - assertTrue(reaction.containsElement(species)); - assertFalse(reaction.containsElement(new GenericProtein("id"))); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testComparator() { - try { - Reaction reaction1 = new Reaction(); - reaction1.setIdReaction("2"); - Reaction reaction2 = new Reaction(); - reaction2.setIdReaction("1"); - Reaction reaction3 = new Reaction(); - reaction3.setIdReaction("3"); - List<Reaction> reactions = new ArrayList<>(); - reactions.add(reaction1); - reactions.add(reaction2); - reactions.add(reaction3); - Collections.sort(reactions, Reaction.ID_COMPARATOR); - assertEquals(reaction2, reactions.get(0)); - assertEquals(reaction1, reactions.get(1)); - assertEquals(reaction3, reactions.get(2)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testConstructor() { - try { - Reaction reaction1 = new Reaction(); - reaction1.addMiriamData(new MiriamData()); - reaction1.addSynonym("s"); - Reaction reaction2 = new Reaction(reaction1); - - assertEquals(1, reaction2.getMiriamData().size()); - assertEquals(1, reaction2.getSynonyms().size()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetDistanceFromPoint() { - try { - Reaction reaction1 = new Reaction(); - Reactant reactant = new Reactant(); - PolylineData line = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(2.0, 0.0)); - reactant.setLine(line); - reaction1.addReactant(reactant); - - assertEquals(0.0, reaction1.getDistanceFromPoint(new Point2D.Double(0.0, 0.0)), Configuration.EPSILON); - assertEquals(0.0, reaction1.getDistanceFromPoint(new Point2D.Double(1.0, 0.0)), Configuration.EPSILON); - assertEquals(1.0, reaction1.getDistanceFromPoint(new Point2D.Double(1.0, 1.0)), Configuration.EPSILON); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetClosestPointTo() { - try { - Reaction reaction1 = new Reaction(); - Reactant reactant = new Reactant(); - PolylineData line = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(2.0, 0.0)); - reactant.setLine(line); - reaction1.addReactant(reactant); - - assertEquals(0.0, reaction1.getClosestPointTo(new Point2D.Double(0.0, 0.0)).distance(new Point2D.Double(0.0, 0.0)), Configuration.EPSILON); - assertEquals(0.0, reaction1.getClosestPointTo(new Point2D.Double(1.0, 0.0)).distance(new Point2D.Double(1.0, 0.0)), Configuration.EPSILON); - assertEquals(0.0, reaction1.getClosestPointTo(new Point2D.Double(1.0, 1.0)).distance(new Point2D.Double(1.0, 0.0)), Configuration.EPSILON); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testAddMiriam() { - try { - Reaction reaction1 = new Reaction(); - - MiriamData md = new MiriamData(MiriamType.CAS, "1"); - reaction1.addMiriamData(md); - - assertEquals(1, reaction1.getMiriamData().size()); - - reaction1.addMiriamData(md); - assertEquals(1, reaction1.getMiriamData().size()); - assertEquals(1, getWarnings().size()); - - List<MiriamData> list = new ArrayList<>(); - list.add(md); - - reaction1.addMiriamData(list); - assertEquals(2, getWarnings().size()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetters() { - try { - Reaction reaction1 = new Reaction(); - - assertNotNull(reaction1.getStringType()); - assertNull(reaction1.getReactionRect()); - - int id = 61; - List<AbstractNode> nodes = new ArrayList<>(); - String notes = "dfp"; - - boolean kineticLaw = true; - ModelData data = new ModelData(); - Model model = new ModelFullIndexed(data); - String symbol = "sybm"; - String formula = "form"; - Integer mechanicalConfidenceScore = 9908; - Double lowerBound = 9.2; - Double upperBound = 9.2; - String subsystem = "ssyst"; - String geneProteinReaction = "GPR"; - List<String> synonyms = new ArrayList<>(); - - reaction1.setId(id); - reaction1.setNodes(nodes); - reaction1.setNotes(notes); - reaction1.setModel(model); - assertEquals(model, reaction1.getModel()); - reaction1.setModelData(data); - assertEquals(data, reaction1.getModelData()); - reaction1.setSymbol(symbol); - assertEquals(symbol, reaction1.getSymbol()); - reaction1.setFormula(formula); - assertEquals(formula, reaction1.getFormula()); - reaction1.setMechanicalConfidenceScore(mechanicalConfidenceScore); - assertEquals(mechanicalConfidenceScore, reaction1.getMechanicalConfidenceScore()); - reaction1.setLowerBound(lowerBound); - assertEquals(lowerBound, reaction1.getLowerBound()); - reaction1.setUpperBound(upperBound); - assertEquals(upperBound, reaction1.getUpperBound()); - reaction1.setSubsystem(subsystem); - assertEquals(subsystem, reaction1.getSubsystem()); - reaction1.setGeneProteinReaction(geneProteinReaction); - assertEquals(geneProteinReaction, reaction1.getGeneProteinReaction()); - reaction1.setSynonyms(synonyms); - assertEquals(synonyms, reaction1.getSynonyms()); - - assertEquals(id, reaction1.getId()); - assertEquals(nodes, reaction1.getNodes()); - assertEquals(notes, reaction1.getNotes()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testVisibilityLevel() { - try { - Reaction reaction1 = new Reaction(); - assertEquals("", reaction1.getVisibilityLevel()); - - reaction1.setVisibilityLevel(1); - assertEquals("1", reaction1.getVisibilityLevel()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetCenterLine() { - try { - Reaction reaction1 = new Reaction(); - - Reactant reactant = new Reactant(); - PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); - reactant.setLine(line1); - reaction1.addReactant(reactant); - - Product product = new Product(); - PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); - product.setLine(line2); - reaction1.addProduct(product); - - Line2D line = reaction1.getCenterLine(); - assertEquals(4.0, line.getP1().distance(line.getP2()), Configuration.EPSILON); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetCenterPoint() { - try { - Reaction reaction1 = new Reaction(); - - Reactant reactant = new Reactant(); - PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); - reactant.setLine(line1); - reaction1.addReactant(reactant); - - Product product = new Product(); - PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); - product.setLine(line2); - reaction1.addProduct(product); - - assertEquals(0.0, reaction1.getCenterPoint().distance(new Point2D.Double(2.0, 0.0)), Configuration.EPSILON); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetCenterLine2() { - try { - Reaction reaction1 = new HeterodimerAssociationReaction(); - - Reactant reactant = new Reactant(); - PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); - reactant.setLine(line1); - reaction1.addReactant(reactant); - - Reactant reactant2 = new Reactant(); - PolylineData line3 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); - reactant2.setLine(line3); - reaction1.addReactant(reactant2); - AndOperator operator = new AndOperator(); - operator.addInput(reactant); - operator.addInput(reactant2); - PolylineData line4 = new PolylineData(new Point2D.Double(10.0, 0.0), new Point2D.Double(11.0, 11.0)); - operator.setLine(line4); - reaction1.addNode(operator); - - Product product = new Product(); - PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); - product.setLine(line2); - reaction1.addProduct(product); - - Line2D line = reaction1.getCenterLine(); - assertEquals(6.0, line.getP1().distance(line.getP2()), Configuration.EPSILON); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetCenterLine3() { - try { - Reaction reaction1 = new DissociationReaction(); - - Reactant reactant = new Reactant(); - PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); - reactant.setLine(line1); - reaction1.addReactant(reactant); - - Product product = new Product(); - PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); - product.setLine(line2); - reaction1.addProduct(product); - - Product product2 = new Product(); - PolylineData line3 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); - product2.setLine(line3); - reaction1.addProduct(product2); - SplitOperator operator = new SplitOperator(); - operator.addOutput(product); - operator.addOutput(product2); - PolylineData line4 = new PolylineData(new Point2D.Double(10.0, 0.0), new Point2D.Double(11.0, 0.0)); - operator.setLine(line4); - reaction1.addNode(operator); - - Line2D line = reaction1.getCenterLine(); - assertEquals(10.0, line.getP1().distance(line.getP2()), Configuration.EPSILON); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testSerialization() { - try { - SerializationUtils.serialize(new Reaction()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testRemoveModifier() { - try { - Reaction reaction = new Reaction(); - Modifier modifier = new Modifier(); - reaction.addModifier(modifier); - assertEquals(1, reaction.getModifiers().size()); - reaction.removeModifier(modifier); - assertEquals(0, reaction.getModifiers().size()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopy() { - try { - Reaction original = new Reaction(); - Reaction reactant = original.copy(); - assertNotNull(reactant); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidCopy() { - try { - new Reaction() { - - /** - * - */ - private static final long serialVersionUID = 1L; - }.copy(); - fail("Exception expected"); - } catch (NotImplementedException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + Logger logger = Logger.getLogger(ReactantTest.class); + + private Species species; + + @Before + public void setUp() throws Exception { + species = new GenericProtein("sa1"); + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testContainsElement() { + try { + Reaction reaction = new Reaction(); + assertFalse(reaction.containsElement(species)); + Modifier modifier = new Catalysis(species); + reaction.addModifier(modifier); + assertTrue(reaction.containsElement(species)); + assertFalse(reaction.containsElement(new GenericProtein("id"))); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testComparator() { + try { + Reaction reaction1 = new Reaction(); + reaction1.setIdReaction("2"); + Reaction reaction2 = new Reaction(); + reaction2.setIdReaction("1"); + Reaction reaction3 = new Reaction(); + reaction3.setIdReaction("3"); + List<Reaction> reactions = new ArrayList<>(); + reactions.add(reaction1); + reactions.add(reaction2); + reactions.add(reaction3); + Collections.sort(reactions, Reaction.ID_COMPARATOR); + assertEquals(reaction2, reactions.get(0)); + assertEquals(reaction1, reactions.get(1)); + assertEquals(reaction3, reactions.get(2)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testConstructor() { + try { + Reaction reaction1 = new Reaction(); + reaction1.addMiriamData(new MiriamData()); + reaction1.addSynonym("s"); + Reaction reaction2 = new Reaction(reaction1); + + assertEquals(1, reaction2.getMiriamData().size()); + assertEquals(1, reaction2.getSynonyms().size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetDistanceFromPoint() { + try { + Reaction reaction1 = new Reaction(); + Reactant reactant = new Reactant(); + PolylineData line = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(2.0, 0.0)); + reactant.setLine(line); + reaction1.addReactant(reactant); + + assertEquals(0.0, reaction1.getDistanceFromPoint(new Point2D.Double(0.0, 0.0)), Configuration.EPSILON); + assertEquals(0.0, reaction1.getDistanceFromPoint(new Point2D.Double(1.0, 0.0)), Configuration.EPSILON); + assertEquals(1.0, reaction1.getDistanceFromPoint(new Point2D.Double(1.0, 1.0)), Configuration.EPSILON); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetClosestPointTo() { + try { + Reaction reaction1 = new Reaction(); + Reactant reactant = new Reactant(); + PolylineData line = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(2.0, 0.0)); + reactant.setLine(line); + reaction1.addReactant(reactant); + + assertEquals(0.0, + reaction1.getClosestPointTo(new Point2D.Double(0.0, 0.0)).distance(new Point2D.Double(0.0, 0.0)), + Configuration.EPSILON); + assertEquals(0.0, + reaction1.getClosestPointTo(new Point2D.Double(1.0, 0.0)).distance(new Point2D.Double(1.0, 0.0)), + Configuration.EPSILON); + assertEquals(0.0, + reaction1.getClosestPointTo(new Point2D.Double(1.0, 1.0)).distance(new Point2D.Double(1.0, 0.0)), + Configuration.EPSILON); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testAddMiriam() { + try { + Reaction reaction1 = new Reaction(); + + MiriamData md = new MiriamData(MiriamType.CAS, "1"); + reaction1.addMiriamData(md); + + assertEquals(1, reaction1.getMiriamData().size()); + + reaction1.addMiriamData(md); + assertEquals(1, reaction1.getMiriamData().size()); + assertEquals(1, getWarnings().size()); + + List<MiriamData> list = new ArrayList<>(); + list.add(md); + + reaction1.addMiriamData(list); + assertEquals(2, getWarnings().size()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetters() { + try { + Reaction reaction1 = new Reaction(); + + assertNotNull(reaction1.getStringType()); + assertNull(reaction1.getReactionRect()); + + int id = 61; + List<AbstractNode> nodes = new ArrayList<>(); + String notes = "dfp"; + + ModelData data = new ModelData(); + Model model = new ModelFullIndexed(data); + String symbol = "sybm"; + String formula = "form"; + Integer mechanicalConfidenceScore = 9908; + Double lowerBound = 9.2; + Double upperBound = 9.2; + String subsystem = "ssyst"; + String geneProteinReaction = "GPR"; + List<String> synonyms = new ArrayList<>(); + + reaction1.setId(id); + reaction1.setNodes(nodes); + reaction1.setNotes(notes); + reaction1.setModel(model); + assertEquals(model, reaction1.getModel()); + reaction1.setModelData(data); + assertEquals(data, reaction1.getModelData()); + reaction1.setSymbol(symbol); + assertEquals(symbol, reaction1.getSymbol()); + reaction1.setFormula(formula); + assertEquals(formula, reaction1.getFormula()); + reaction1.setMechanicalConfidenceScore(mechanicalConfidenceScore); + assertEquals(mechanicalConfidenceScore, reaction1.getMechanicalConfidenceScore()); + reaction1.setLowerBound(lowerBound); + assertEquals(lowerBound, reaction1.getLowerBound()); + reaction1.setUpperBound(upperBound); + assertEquals(upperBound, reaction1.getUpperBound()); + reaction1.setSubsystem(subsystem); + assertEquals(subsystem, reaction1.getSubsystem()); + reaction1.setGeneProteinReaction(geneProteinReaction); + assertEquals(geneProteinReaction, reaction1.getGeneProteinReaction()); + reaction1.setSynonyms(synonyms); + assertEquals(synonyms, reaction1.getSynonyms()); + + assertEquals(id, reaction1.getId()); + assertEquals(nodes, reaction1.getNodes()); + assertEquals(notes, reaction1.getNotes()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testVisibilityLevel() { + try { + Reaction reaction1 = new Reaction(); + assertEquals("", reaction1.getVisibilityLevel()); + + reaction1.setVisibilityLevel(1); + assertEquals("1", reaction1.getVisibilityLevel()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetCenterLine() { + try { + Reaction reaction1 = new Reaction(); + + Reactant reactant = new Reactant(); + PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); + reactant.setLine(line1); + reaction1.addReactant(reactant); + + Product product = new Product(); + PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); + product.setLine(line2); + reaction1.addProduct(product); + + Line2D line = reaction1.getCenterLine(); + assertEquals(4.0, line.getP1().distance(line.getP2()), Configuration.EPSILON); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetCenterPoint() { + try { + Reaction reaction1 = new Reaction(); + + Reactant reactant = new Reactant(); + PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); + reactant.setLine(line1); + reaction1.addReactant(reactant); + + Product product = new Product(); + PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); + product.setLine(line2); + reaction1.addProduct(product); + + assertEquals(0.0, reaction1.getCenterPoint().distance(new Point2D.Double(2.0, 0.0)), Configuration.EPSILON); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetCenterLine2() { + try { + Reaction reaction1 = new HeterodimerAssociationReaction(); + + Reactant reactant = new Reactant(); + PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); + reactant.setLine(line1); + reaction1.addReactant(reactant); + + Reactant reactant2 = new Reactant(); + PolylineData line3 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); + reactant2.setLine(line3); + reaction1.addReactant(reactant2); + AndOperator operator = new AndOperator(); + operator.addInput(reactant); + operator.addInput(reactant2); + PolylineData line4 = new PolylineData(new Point2D.Double(10.0, 0.0), new Point2D.Double(11.0, 11.0)); + operator.setLine(line4); + reaction1.addNode(operator); + + Product product = new Product(); + PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); + product.setLine(line2); + reaction1.addProduct(product); + + Line2D line = reaction1.getCenterLine(); + assertEquals(6.0, line.getP1().distance(line.getP2()), Configuration.EPSILON); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetCenterLine3() { + try { + Reaction reaction1 = new DissociationReaction(); + + Reactant reactant = new Reactant(); + PolylineData line1 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); + reactant.setLine(line1); + reaction1.addReactant(reactant); + + Product product = new Product(); + PolylineData line2 = new PolylineData(new Point2D.Double(0.0, 2.0), new Point2D.Double(4.0, 0.0)); + product.setLine(line2); + reaction1.addProduct(product); + + Product product2 = new Product(); + PolylineData line3 = new PolylineData(new Point2D.Double(0.0, 0.0), new Point2D.Double(0.0, 1.0)); + product2.setLine(line3); + reaction1.addProduct(product2); + SplitOperator operator = new SplitOperator(); + operator.addOutput(product); + operator.addOutput(product2); + PolylineData line4 = new PolylineData(new Point2D.Double(10.0, 0.0), new Point2D.Double(11.0, 0.0)); + operator.setLine(line4); + reaction1.addNode(operator); + + Line2D line = reaction1.getCenterLine(); + assertEquals(10.0, line.getP1().distance(line.getP2()), Configuration.EPSILON); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testSerialization() { + try { + SerializationUtils.serialize(new Reaction()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testRemoveModifier() { + try { + Reaction reaction = new Reaction(); + Modifier modifier = new Modifier(); + reaction.addModifier(modifier); + assertEquals(1, reaction.getModifiers().size()); + reaction.removeModifier(modifier); + assertEquals(0, reaction.getModifiers().size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopy() { + try { + Reaction original = new Reaction(); + Reaction reactant = original.copy(); + assertNotNull(reactant); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidCopy() { + try { + new Reaction() { + + /** + * + */ + private static final long serialVersionUID = 1L; + }.copy(); + fail("Exception expected"); + } catch (NotImplementedException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } }