From 2cf27da1e2d10d358f7438e702e075ef1360fcbe Mon Sep 17 00:00:00 2001 From: anqili426 Date: Wed, 22 Apr 2020 13:14:23 -0400 Subject: Added new test --- .../viatra2logic/ExpressionEvaluation2Logic.xtend | 3 +- .../viatra2logic/NumericProblemSolver.java | 48 +++++++++++++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) (limited to 'Framework/hu.bme.mit.inf.dslreasoner.viatra2logic') diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExpressionEvaluation2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExpressionEvaluation2Logic.xtend index 569414f0..a27e8904 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExpressionEvaluation2Logic.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/ExpressionEvaluation2Logic.xtend @@ -25,7 +25,8 @@ class ExpressionEvaluation2Logic { def Term transformEval(PVariable target, XExpression expression, Map variable2Variable) { // numericSolver.testIsNotSat(expression, expression.transform(variable2Variable)); // numericSolver.testGetOneSol(expression, expression.transform(variable2Variable)); - numericSolver.testGetOneSol2(expression, expression.transform(variable2Variable)); +// numericSolver.testGetOneSol2(expression, expression.transform(variable2Variable)); + numericSolver.testGetOneSol3(expression, expression.transform(variable2Variable)); // numericSolver.testIsSat(expression, expression.transform(variable2Variable)); return expression.transform(variable2Variable) diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericProblemSolver.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericProblemSolver.java index 7845c528..ff3a85eb 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericProblemSolver.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericProblemSolver.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.Set; import org.eclipse.xtext.common.types.JvmIdentifiableElement; @@ -165,7 +166,7 @@ public class NumericProblemSolver { } public void testGetOneSol2(XExpression expression, Term t) throws Exception { - int count = 100; + int count = 250; Map>> matches = new HashMap>>(); Set> matchSet = new HashSet>(); ArrayList allElem = getJvmIdentifiableElements(expression); @@ -208,6 +209,49 @@ public class NumericProblemSolver { System.out.println("Number of matches: " + matchSet.size()); for (int i = 0; i < 10; i++) { Map sol = getOneSolution(obj, matches); + System.out.println("**********************"); + Thread.sleep(3000); + } + } + + public void testGetOneSol3(XExpression expression, Term t) throws Exception { + int count = 15000; + Random rand = new Random(); + Map>> matches = new HashMap>>(); + Set> matchSet = new HashSet>(); + ArrayList allElem = getJvmIdentifiableElements(expression); + List obj = new ArrayList(); + for (int i = 0; i < count; i++) { + Map match = new HashMap(); + if (obj.size() > 1) { + for (JvmIdentifiableElement e: allElem) { + FakeIntegerElement intE = null; + int useOld = rand.nextInt(10); + if (useOld == 1) { + System.out.println("here "); + int index = rand.nextInt(obj.size()); + intE = (FakeIntegerElement) obj.get(index); + } else { + intE = new FakeIntegerElement(); + } + obj.add(intE); + match.put(e, intE); + } + } else { + for (JvmIdentifiableElement e: allElem) { + FakeIntegerElement intE = new FakeIntegerElement(); + obj.add(intE); + match.put(e, intE); + } + } + matchSet.add(match); + } + matches.put(expression, matchSet); + + System.out.println("Number of matches: " + matchSet.size()); + for (int i = 0; i < 10; i++) { + Map sol = getOneSolution(obj, matches); + System.out.println("**********************"); Thread.sleep(3000); } } @@ -257,6 +301,8 @@ public class NumericProblemSolver { } long endFormingSolution = System.currentTimeMillis(); System.out.println("Forming solution: " + (endFormingSolution - startFormingSolution)); + } else { + System.out.println("Unsatisfiable"); } return sol; -- cgit v1.2.3-54-g00ecf