You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by re...@apache.org on 2015/08/01 22:21:46 UTC
svn commit: r1693757 - in /devicemap/trunk/clients/2.0/reference:
src/DeviceMapClient.java src/Pattern.java test.sh
Author: rezan
Date: Sat Aug 1 20:21:45 2015
New Revision: 1693757
URL: http://svn.apache.org/r1693757
Log:
ranking based on length and strong fix
Modified:
devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java
devicemap/trunk/clients/2.0/reference/src/Pattern.java
devicemap/trunk/clients/2.0/reference/test.sh
Modified: devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java?rev=1693757&r1=1693756&r2=1693757&view=diff
==============================================================================
--- devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java (original)
+++ devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java Sat Aug 1 20:21:45 2015
@@ -311,11 +311,6 @@ public class DeviceMapClient {
matchedTokens.add(token);
for(Pattern match : matched) {
- if(match.isStrong()) {
- winner = match;
- break;
- }
-
if(!candidates.contains(match)) {
candidates.add(match);
}
@@ -330,8 +325,14 @@ public class DeviceMapClient {
if(winner == null) {
for(Pattern candidate : candidates) {
if(candidate.isValid(matchedTokens)) {
- Main.log("Candidate: " + candidate.toStringRank(), 3);
- if(winner == null || candidate.getRank() > winner.getRank()) {
+ Main.log("Candidate: " + candidate.toStringRank(matchedTokens), 3);
+
+ if(winner == null) {
+ winner = candidate;
+ } else if(candidate.getRank() > winner.getRank()) {
+ winner = candidate;
+ } else if(candidate.getRank() == winner.getRank() &&
+ candidate.getMatchedLength(matchedTokens) > winner.getMatchedLength(matchedTokens)) {
winner = candidate;
}
}
Modified: devicemap/trunk/clients/2.0/reference/src/Pattern.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/2.0/reference/src/Pattern.java?rev=1693757&r1=1693756&r2=1693757&view=diff
==============================================================================
--- devicemap/trunk/clients/2.0/reference/src/Pattern.java (original)
+++ devicemap/trunk/clients/2.0/reference/src/Pattern.java Sat Aug 1 20:21:45 2015
@@ -70,6 +70,10 @@ public class Pattern {
throw new Exception("Invalid rankValue in " + patternId + ": " + rankValue);
}
+ if(rankType.equals(RankType.Strong) && rankValue != 0) {
+ throw new Exception("Strong patterns cannot have a rankValue");
+ }
+
patternTokens = new ArrayList<>();
for(int i = 0; i < json.get("patternTokens").size(); i++) {
@@ -121,16 +125,25 @@ public class Pattern {
if(isWeak()) {
rank += 100000;
} else if(isStrong()) {
- rank += 10000000;
+ return 10000000;
}
return rank;
}
//LENGTH OF MATCHED TOKENS, FOR RANKING
- //TODO
- public long getMatchedLength() {
- return 0;
+ public long getMatchedLength(List<String> matchedTokens) {
+ int length = 0;
+
+ for(String patternToken : patternTokens) {
+ int found = matchedTokens.indexOf(patternToken);
+
+ if(found >= 0) {
+ length += matchedTokens.get(found).length();
+ }
+ }
+
+ return length;
}
@Override
@@ -138,8 +151,8 @@ public class Pattern {
return patternId;
}
- public String toStringRank() {
- return patternId + "(" + getRank() + ")";
+ public String toStringRank(List<String> matchedTokens) {
+ return patternId + "(" + getRank() + "," + getMatchedLength(matchedTokens) + ")";
}
public String toStringFull() {
Modified: devicemap/trunk/clients/2.0/reference/test.sh
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/2.0/reference/test.sh?rev=1693757&r1=1693756&r2=1693757&view=diff
==============================================================================
--- devicemap/trunk/clients/2.0/reference/test.sh (original)
+++ devicemap/trunk/clients/2.0/reference/test.sh Sat Aug 1 20:21:45 2015
@@ -36,11 +36,13 @@ do
A=`find $DROOT -type f | grep attribute | sort | sed "s/^/-a /" | xargs echo`
T=`find $DROOT -type f | grep test | sort | sed "s/^/-t /" | xargs echo`
+ CMD="./run.sh $P $A $T -v"
./run.sh $P $A $T -q
if [ "$?" != "0" ]
then
FAIL="$FAIL $DOMAIN"
+ echo "Failed command: $CMD"
else
PASS="$PASS $DOMAIN"
fi