first version
This commit is contained in:
commit
f3419dd0f8
91
abr_wb_meawblom.csv
Normal file
91
abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,91 @@
|
|||
#Description Index Start End peakPos PeakFactor IsRefOffset RefIndex AnaFixed Info
|
||||
wire break 0 337146 337212 337194 5.17 0 -1 0 0.144818 > 0.084059
|
||||
wire break 1 339240 339308 339295 3.68 0 -1 0 0.103132 > 0.084059
|
||||
wire break 2 342952 343050 343030 4.13 0 -1 0 0.115647 > 0.084059
|
||||
wire break 3 351989 352113 352097 5.74 0 -1 0 0.160835 > 0.084059
|
||||
splice begin 4 2944476 2944676 2944476 50.00 1 0 1
|
||||
wire break 5 2944543 2944775 2944699 4.94 0 -1 0 0.138428 > 0.084059
|
||||
wire break 6 2947377 2947544 2947476 3.77 0 -1 0 0.105598 > 0.084059
|
||||
wire break 7 2950395 2950522 2950492 6.31 0 -1 0 0.176837 > 0.084059
|
||||
splice mid 8 2950535 2950885 2950535 50.00 0 1 1
|
||||
wire break 9 2950908 2951015 2950950 3.06 0 -1 0 0.085753 > 0.084059
|
||||
wire break 10 2953757 2953895 2953865 5.25 0 -1 0 0.146987 > 0.084059
|
||||
wire break 11 2953911 2953962 2953941 3.08 0 -1 0 0.086209 > 0.084059
|
||||
wire break 12 2954032 2954212 2954168 3.35 0 -1 0 0.093795 > 0.084059
|
||||
wire break 13 2956905 2957045 2956950 4.49 0 -1 0 0.125914 > 0.084059
|
||||
splice mid 14 2957048 2957384 2957048 50.00 0 2 1
|
||||
wire break 15 2957396 2957544 2957430 4.66 0 -1 0 0.130665 > 0.084059
|
||||
wire break 16 2960222 2960397 2960336 4.59 0 -1 0 0.128513 > 0.084059
|
||||
wire break 17 2960535 2960700 2960634 3.21 0 -1 0 0.089898 > 0.084059
|
||||
wire break 18 2963464 2963569 2963492 5.57 0 -1 0 0.156008 > 0.084059
|
||||
splice mid 19 2963569 2963757 2963569 50.00 0 3 1
|
||||
splice mid 20 2990720 2990912 2990720 50.00 0 4 1
|
||||
wire break 21 2990924 2991056 2990974 4.69 0 -1 0 0.131496 > 0.084059
|
||||
wire break 22 2993617 2993761 2993748 4.13 0 -1 0 0.115844 > 0.084059
|
||||
wire break 23 2996605 2996795 2996753 3.15 0 -1 0 0.088161 > 0.084059
|
||||
splice mid 24 2996795 2997153 2996795 50.00 0 5 1
|
||||
wire break 25 2997175 2997352 2997224 4.04 0 -1 0 0.113268 > 0.084059
|
||||
wire break 26 2997642 2997728 2997661 3.32 0 -1 0 0.093049 > 0.084059
|
||||
wire break 27 3000056 3000215 3000113 3.62 0 -1 0 0.101334 > 0.084059
|
||||
wire break 28 3000215 3000308 3000286 3.11 0 -1 0 0.087027 > 0.084059
|
||||
wire break 29 3000308 3000437 3000414 3.12 0 -1 0 0.087503 > 0.084059
|
||||
wire break 30 3003094 3003260 3003236 5.42 0 -1 0 0.151840 > 0.084059
|
||||
splice mid 31 3003260 3003655 3003260 50.00 0 6 1
|
||||
wire break 32 3006497 3006607 3006554 3.61 0 -1 0 0.101281 > 0.084059
|
||||
wire break 33 3006607 3006653 3006638 4.30 0 -1 0 0.120536 > 0.084059
|
||||
wire break 34 3006771 3006882 3006839 3.85 0 -1 0 0.107807 > 0.084059
|
||||
wire break 35 3009581 3009773 3009728 3.94 0 -1 0 0.110324 > 0.084059
|
||||
splice end 36 3009773 3010025 3009773 50.00 0 7 1
|
||||
wire break 37 3047508 3047577 3047564 10.29 0 -1 0 0.288310 > 0.084059
|
||||
wire break 38 3221630 3221694 3221680 6.87 0 -1 0 0.192431 > 0.084059
|
||||
wire break 39 3318948 3319044 3319024 6.32 0 -1 0 0.177116 > 0.084059
|
||||
wire break 40 4005982 4006044 4006030 6.79 0 -1 0 0.190170 > 0.084059
|
||||
wire break 41 4008073 4008147 4008133 4.70 0 -1 0 0.131652 > 0.084059
|
||||
wire break 42 4011783 4011881 4011864 3.89 0 -1 0 0.108914 > 0.084059
|
||||
wire break 43 4020894 4020959 4020941 6.54 0 -1 0 0.183381 > 0.084059
|
||||
wire break 44 4027847 4027922 4027907 4.22 0 -1 0 0.118148 > 0.084059
|
||||
wire break 45 4492399 4492474 4492452 2.82 0 -1 0 -0.048169 < -0.028020 | 0.079128 > 0.075653 | -0.044806 < -0.028020
|
||||
wire break 46 4774637 4774710 4774689 2.79 0 -1 0 -0.043771 < -0.028020 | 0.078122 > 0.075653 | -0.040041 < -0.028020
|
||||
splice begin 47 6613226 6613453 6613226 50.00 1 0 1
|
||||
wire break 48 6613321 6613543 6613321 4.94 0 -1 0 0.138335 > 0.084059
|
||||
wire break 49 6616083 6616163 6616137 2.85 0 -1 0 -0.084632 < -0.028020 | 0.079826 > 0.075653 | -0.039096 < -0.028020
|
||||
wire break 50 6616271 6616324 6616311 3.31 0 -1 0 0.092847 > 0.084059
|
||||
wire break 51 6616383 6616458 6616432 4.78 0 -1 0 0.133957 > 0.084059
|
||||
wire break 52 6619136 6619280 6619248 5.95 0 -1 0 0.166664 > 0.084059
|
||||
splice mid 53 6619280 6619678 6619280 50.00 0 1 1
|
||||
wire break 54 6622503 6622746 6622650 4.61 0 -1 0 0.129135 > 0.084059
|
||||
wire break 55 6625546 6625841 6625799 5.22 0 -1 0 0.146226 > 0.084059
|
||||
splice mid 56 6625876 6626192 6625876 50.00 0 2 1
|
||||
wire break 57 6626200 6626284 6626255 4.15 0 -1 0 0.116143 > 0.084059
|
||||
wire break 58 6629036 6629239 6629152 3.73 0 -1 0 0.104596 > 0.084059
|
||||
wire break 59 6629326 6629534 6629454 3.83 0 -1 0 0.107185 > 0.084059
|
||||
wire break 60 6631862 6631903 6631879 3.28 0 -1 0 0.091988 > 0.084059
|
||||
wire break 61 6632229 6632379 6632308 7.23 0 -1 0 0.202643 > 0.084059
|
||||
splice mid 62 6632379 6632579 6632379 50.00 0 3 1
|
||||
splice mid 63 6659508 6659693 6659508 50.00 0 4 1
|
||||
wire break 64 6659586 6659836 6659759 4.43 0 -1 0 0.124117 > 0.084059
|
||||
wire break 65 6662383 6662502 6662475 3.70 0 -1 0 0.103576 > 0.084059
|
||||
wire break 66 6662574 6662642 6662625 3.15 0 -1 0 0.088252 > 0.084059
|
||||
wire break 67 6662710 6662801 6662745 4.03 0 -1 0 0.112897 > 0.084059
|
||||
splice mid 68 6665573 6665917 6665573 50.00 0 5 1
|
||||
wire break 69 6668914 6668984 6668971 3.34 0 -1 0 0.093484 > 0.084059
|
||||
wire break 70 6669066 6669198 6669119 2.75 0 -1 0 -0.133300 < -0.028020 | 0.076941 > 0.075653 | -0.052040 < -0.028020
|
||||
wire break 71 6671922 6672031 6672010 4.81 0 -1 0 0.134888 > 0.084059
|
||||
splice mid 72 6672076 6672426 6672076 50.00 0 6 1
|
||||
wire break 73 6672522 6672592 6672557 3.01 0 -1 0 0.084474 > 0.084059
|
||||
wire break 74 6675307 6675413 6675361 3.97 0 -1 0 0.111309 > 0.084059
|
||||
wire break 75 6675413 6675466 6675447 3.67 0 -1 0 0.102964 > 0.084059
|
||||
wire break 76 6678393 6678596 6678532 3.96 0 -1 0 0.110872 > 0.084059
|
||||
splice end 77 6678596 6678804 6678596 50.00 0 7 1
|
||||
wire break 78 6716304 6716382 6716367 7.39 0 -1 0 0.207110 > 0.084059
|
||||
wire break 79 6740824 6740894 6740875 2.72 0 -1 0 -0.046936 < -0.028020 | 0.076094 > 0.075653 | -0.041233 < -0.028020
|
||||
wire break 80 6890448 6890517 6890504 8.03 0 -1 0 0.225115 > 0.084059
|
||||
wire break 81 6987812 6987895 6987880 9.23 0 -1 0 0.258559 > 0.084059
|
||||
wire break 82 7506065 7506141 7506119 2.95 0 -1 0 -0.032500 < -0.028020 | 0.082549 > 0.075653 | -0.041575 < -0.028020
|
||||
wire break 83 7674857 7674940 7674927 6.38 0 -1 0 0.178858 > 0.084059
|
||||
wire break 84 7676993 7677045 7677029 5.17 0 -1 0 0.144773 > 0.084059
|
||||
wire break 85 7680703 7680762 7680750 6.68 0 -1 0 0.187274 > 0.084059
|
||||
wire break 86 7689731 7689799 7689784 10.46 0 -1 0 0.293208 > 0.084059
|
||||
wire break 87 7696702 7696775 7696763 5.14 0 -1 0 0.143918 > 0.084059
|
||||
wire break 88 7897772 7897845 7897825 2.79 0 -1 0 -0.040019 < -0.028020 | 0.078246 > 0.075653 | -0.041862 < -0.028020
|
||||
wire break 89 8189462 8189528 8189508 2.74 0 -1 0 -0.036704 < -0.028020 | 0.076669 > 0.075653 | -0.043269 < -0.028020
|
|
29
abr_wb_refwblom.csv
Normal file
29
abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,29 @@
|
|||
#Description Index Start End peakPos PeakFactor IsRefOffset RefIndex AnaFixed Info
|
||||
splice begin 0 243 297 243 50.00 1 0 1
|
||||
splice mid 1 6475 6604 6475 50.00 0 1 1
|
||||
splice mid 2 13013 13143 13013 50.00 0 2 1
|
||||
splice mid 3 19399 19489 19399 50.00 0 3 1
|
||||
splice mid 4 46487 46543 46487 50.00 0 4 1
|
||||
splice mid 5 52738 52866 52738 50.00 0 5 1
|
||||
splice mid 6 59187 59315 59187 50.00 0 6 1
|
||||
splice end 7 65604 65683 65604 50.00 0 7 1
|
||||
wire break 8 103258 103276 103267 0.00 0 8 0
|
||||
wire break 9 277427 277441 277434 0.00 0 9 0
|
||||
wire break 10 374789 374803 374796 0.00 0 10 0
|
||||
wire break 11 1062129 1062133 1062131 0.00 0 11 0
|
||||
wire break 12 1067961 1067975 1067968 0.00 0 12 0
|
||||
wire break 13 1077046 1077063 1077054 0.00 0 13 0
|
||||
splice begin 14 3668243 3668297 3668243 50.00 1 0 1
|
||||
splice mid 15 3674475 3674604 3674475 50.00 0 1 1
|
||||
splice mid 16 3681013 3681143 3681013 50.00 0 2 1
|
||||
splice mid 17 3687399 3687489 3687399 50.00 0 3 1
|
||||
splice mid 18 3714487 3714543 3714487 50.00 0 4 1
|
||||
splice mid 19 3720738 3720866 3720738 50.00 0 5 1
|
||||
splice mid 20 3727187 3727315 3727187 50.00 0 6 1
|
||||
splice end 21 3733604 3733683 3733604 50.00 0 7 1
|
||||
wire break 22 3771258 3771276 3771267 0.00 0 8 0
|
||||
wire break 23 3945427 3945441 3945434 0.00 0 9 0
|
||||
wire break 24 4042789 4042803 4042796 0.00 0 10 0
|
||||
wire break 25 4730129 4730133 4730131 0.00 0 11 0
|
||||
wire break 26 4735961 4735975 4735968 0.00 0 12 0
|
||||
wire break 27 4745046 4745063 4745054 0.00 0 13 0
|
|
73
build.xml
Normal file
73
build.xml
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- You may freely edit this file. See commented blocks below for -->
|
||||
<!-- some examples of how to customize the build. -->
|
||||
<!-- (If you delete it and reopen the project it will be recreated.) -->
|
||||
<!-- By default, only the Clean and Build commands use this build script. -->
|
||||
<!-- Commands such as Run, Debug, and Test only use this build script if -->
|
||||
<!-- the Compile on Save feature is turned off for the project. -->
|
||||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
|
||||
<!-- in the project's Project Properties dialog box.-->
|
||||
<project name="MentionMatch" default="default" basedir=".">
|
||||
<description>Builds, tests, and runs the project MentionMatch.</description>
|
||||
<import file="nbproject/build-impl.xml"/>
|
||||
<!--
|
||||
|
||||
There exist several targets which are by default empty and which can be
|
||||
used for execution of your tasks. These targets are usually executed
|
||||
before and after some main targets. They are:
|
||||
|
||||
-pre-init: called before initialization of project properties
|
||||
-post-init: called after initialization of project properties
|
||||
-pre-compile: called before javac compilation
|
||||
-post-compile: called after javac compilation
|
||||
-pre-compile-single: called before javac compilation of single file
|
||||
-post-compile-single: called after javac compilation of single file
|
||||
-pre-compile-test: called before javac compilation of JUnit tests
|
||||
-post-compile-test: called after javac compilation of JUnit tests
|
||||
-pre-compile-test-single: called before javac compilation of single JUnit test
|
||||
-post-compile-test-single: called after javac compilation of single JUunit test
|
||||
-pre-jar: called before JAR building
|
||||
-post-jar: called after JAR building
|
||||
-post-clean: called after cleaning build products
|
||||
|
||||
(Targets beginning with '-' are not intended to be called on their own.)
|
||||
|
||||
Example of inserting an obfuscator after compilation could look like this:
|
||||
|
||||
<target name="-post-compile">
|
||||
<obfuscate>
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
</obfuscate>
|
||||
</target>
|
||||
|
||||
For list of available properties check the imported
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
|
||||
Another way to customize the build is by overriding existing main targets.
|
||||
The targets of interest are:
|
||||
|
||||
-init-macrodef-javac: defines macro for javac compilation
|
||||
-init-macrodef-junit: defines macro for junit execution
|
||||
-init-macrodef-debug: defines macro for class debugging
|
||||
-init-macrodef-java: defines macro for class execution
|
||||
-do-jar: JAR building
|
||||
run: execution of project
|
||||
-javadoc-build: Javadoc generation
|
||||
test-report: JUnit report generation
|
||||
|
||||
An example of overriding the target for project execution could look like this:
|
||||
|
||||
<target name="run" depends="MentionMatch-impl.jar">
|
||||
<exec dir="bin" executable="launcher.exe">
|
||||
<arg file="${dist.jar}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
Notice that the overridden target depends on the jar target and not only on
|
||||
the compile target as the regular run target does. Again, for a list of available
|
||||
properties which you can use, check the target you are overriding in the
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
-->
|
||||
</project>
|
1420
nbproject/build-impl.xml
Normal file
1420
nbproject/build-impl.xml
Normal file
File diff suppressed because it is too large
Load Diff
8
nbproject/genfiles.properties
Normal file
8
nbproject/genfiles.properties
Normal file
|
@ -0,0 +1,8 @@
|
|||
build.xml.data.CRC32=85458ccf
|
||||
build.xml.script.CRC32=34900e25
|
||||
build.xml.stylesheet.CRC32=8064a381@1.80.1.48
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=85458ccf
|
||||
nbproject/build-impl.xml.script.CRC32=4e970dde
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48
|
76
nbproject/project.properties
Normal file
76
nbproject/project.properties
Normal file
|
@ -0,0 +1,76 @@
|
|||
annotation.processing.enabled=true
|
||||
annotation.processing.enabled.in.editor=false
|
||||
annotation.processing.processors.list=
|
||||
annotation.processing.run.all.processors=true
|
||||
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
||||
application.title=MentionMatch
|
||||
application.vendor=gbl
|
||||
build.classes.dir=${build.dir}/classes
|
||||
build.classes.excludes=**/*.java,**/*.form
|
||||
# This directory is removed when the project is cleaned:
|
||||
build.dir=build
|
||||
build.generated.dir=${build.dir}/generated
|
||||
build.generated.sources.dir=${build.dir}/generated-sources
|
||||
# Only compile against the classpath explicitly listed here:
|
||||
build.sysclasspath=ignore
|
||||
build.test.classes.dir=${build.dir}/test/classes
|
||||
build.test.results.dir=${build.dir}/test/results
|
||||
# Uncomment to specify the preferred debugger connection transport:
|
||||
#debug.transport=dt_socket
|
||||
debug.classpath=\
|
||||
${run.classpath}
|
||||
debug.test.classpath=\
|
||||
${run.test.classpath}
|
||||
# Files in build.classes.dir which should be excluded from distribution jar
|
||||
dist.archive.excludes=
|
||||
# This directory is removed when the project is cleaned:
|
||||
dist.dir=dist
|
||||
dist.jar=${dist.dir}/MentionMatch.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
endorsed.classpath=
|
||||
excludes=
|
||||
includes=**
|
||||
jar.compress=false
|
||||
javac.classpath=
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
javac.external.vm=true
|
||||
javac.processorpath=\
|
||||
${javac.classpath}
|
||||
javac.source=1.8
|
||||
javac.target=1.8
|
||||
javac.test.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}
|
||||
javac.test.processorpath=\
|
||||
${javac.test.classpath}
|
||||
javadoc.additionalparam=
|
||||
javadoc.author=false
|
||||
javadoc.encoding=${source.encoding}
|
||||
javadoc.noindex=false
|
||||
javadoc.nonavbar=false
|
||||
javadoc.notree=false
|
||||
javadoc.private=false
|
||||
javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
javadoc.windowtitle=
|
||||
main.class=mentionmatch.MentionMatch
|
||||
manifest.file=manifest.mf
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
mkdist.disabled=false
|
||||
platform.active=default_platform
|
||||
run.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}
|
||||
# Space-separated list of JVM arguments used when running the project.
|
||||
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
|
||||
# To set system properties for unit tests define test-sys-prop.name=value:
|
||||
run.jvmargs=
|
||||
run.test.classpath=\
|
||||
${javac.test.classpath}:\
|
||||
${build.test.classes.dir}
|
||||
source.encoding=ISO-8859-1
|
||||
src.dir=src
|
||||
test.src.dir=test
|
15
nbproject/project.xml
Normal file
15
nbproject/project.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||
<type>org.netbeans.modules.java.j2seproject</type>
|
||||
<configuration>
|
||||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<name>MentionMatch</name>
|
||||
<source-roots>
|
||||
<root id="src.dir"/>
|
||||
</source-roots>
|
||||
<test-roots>
|
||||
<root id="test.src.dir"/>
|
||||
</test-roots>
|
||||
</data>
|
||||
</configuration>
|
||||
</project>
|
115
src/mentionmatch/Comparison.java
Normal file
115
src/mentionmatch/Comparison.java
Normal file
|
@ -0,0 +1,115 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package mentionmatch;
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author gbl
|
||||
*/
|
||||
class Comparison {
|
||||
|
||||
List<MatrixComparison> parts;
|
||||
|
||||
Comparison(ListOfMentions measure, ListOfMentions reference) {
|
||||
parts=new ArrayList<>();
|
||||
|
||||
// Get the first and second mentions that have refOffset set
|
||||
// (i.e. splice begins) from both mention lists
|
||||
Mention measureFirst = measure.getMentions().get(measure.firstRefOffset);
|
||||
Mention refFirst = reference.getMentions().get(reference.firstRefOffset);
|
||||
|
||||
Mention measureLast = measure.getMentions().get(measure.secondRefOffset);
|
||||
Mention refLast = reference.getMentions().get(reference.secondRefOffset);
|
||||
|
||||
// and do some sanity checks
|
||||
|
||||
if (measureFirst.refIndex != 0 || refFirst.refIndex != 0
|
||||
|| measureLast.refIndex != 0 || refLast.refIndex != 0
|
||||
|| measureFirst.anaFixed != 1 || refFirst.anaFixed != 1
|
||||
|| measureLast.anaFixed != 1 || refLast.anaFixed != 1) {
|
||||
System.err.println("Splice references don't match up");
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
// Divide the whole list into parts that have matching first and last
|
||||
// fixed points (anaFixed equal). For example, this list
|
||||
//
|
||||
// A 0 P 0
|
||||
// B 1 Q -1
|
||||
// C 3 R -1
|
||||
// D 0 S 1
|
||||
// T -1
|
||||
// U 2
|
||||
// V -1
|
||||
// W 3
|
||||
// X 0
|
||||
// will have [AB] compared to [PS], [BC] to [SW] and [CD] to [WX].
|
||||
// Note the missing anaFixed==2 in the left table which means we
|
||||
// need to skip U on the right.
|
||||
|
||||
int measureStart=measure.firstRefOffset; // 'A' in comment
|
||||
int referenceStart=reference.firstRefOffset; // 'P' in comment
|
||||
int measureEnd, referenceEnd;
|
||||
for (;;) {
|
||||
measureEnd=findNextFixedPoint(measure, measureStart); // find 'B' from 'A'
|
||||
referenceEnd=findNextFixedPoint(reference, referenceStart); // find 'S' from 'P'
|
||||
|
||||
// Handle the "missing" case from the example; the 'End's are at
|
||||
// C/U here. The one that has the lower anaFixed (but not 0) needs
|
||||
// advance to the next fixed point.
|
||||
|
||||
while (measure.getMentionAt(measureEnd).refIndex != reference.getMentionAt(referenceEnd).refIndex) {
|
||||
if (measure.getMentionAt(measureEnd).refIndex > 0 &&
|
||||
measure.getMentionAt(measureEnd).refIndex < reference.getMentionAt(referenceEnd).refIndex)
|
||||
measureEnd=findNextFixedPoint(measure, measureEnd);
|
||||
else if (reference.getMentionAt(referenceEnd).refIndex > 0 &&
|
||||
measure.getMentionAt(measureEnd).refIndex > reference.getMentionAt(referenceEnd).refIndex)
|
||||
referenceEnd=findNextFixedPoint(reference, referenceEnd);
|
||||
else {
|
||||
System.err.println("This should not happen; bug when finding next matching references");
|
||||
System.err.printf("starts = %d <> %d, ends = %d <> %d\n", measureStart, referenceStart, measureEnd, referenceEnd);
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
parts.add(new MatrixComparison(measure, measureStart, measureEnd, reference, referenceStart, referenceEnd));
|
||||
if (measure.getMentionAt(measureEnd).refIndex == 0 && reference.getMentionAt(referenceEnd).refIndex == 0)
|
||||
break;
|
||||
measureStart=measureEnd;
|
||||
referenceStart=referenceEnd;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the next point, in a mentions list, that has anaFixed set, beginning from startIndex.
|
||||
* @param list the list of mentions to be searched
|
||||
* @param startIndex starting point
|
||||
* @return the first index > startIndex that has a mention with anaFixed != 0
|
||||
*/
|
||||
private int findNextFixedPoint(ListOfMentions list, int startIndex) {
|
||||
int endIndex=startIndex+1;
|
||||
while (list.getMentionAt(endIndex).anaFixed == 0) {
|
||||
endIndex++;
|
||||
}
|
||||
return endIndex;
|
||||
}
|
||||
|
||||
void process() {
|
||||
for (MatrixComparison part: parts) {
|
||||
part.process();
|
||||
}
|
||||
}
|
||||
|
||||
void print(PrintStream out) {
|
||||
for (MatrixComparison part: parts) {
|
||||
part.print(out);
|
||||
}
|
||||
}
|
||||
}
|
47
src/mentionmatch/ListOfMentions.java
Normal file
47
src/mentionmatch/ListOfMentions.java
Normal file
|
@ -0,0 +1,47 @@
|
|||
package mentionmatch;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
class ListOfMentions {
|
||||
|
||||
List<Mention> mentions;
|
||||
int firstRefOffset, secondRefOffset;
|
||||
|
||||
ListOfMentions(File file) throws IOException {
|
||||
mentions=new ArrayList<>();
|
||||
|
||||
BufferedReader reader=new BufferedReader(new FileReader(file));
|
||||
String line;
|
||||
while ((line=reader.readLine())!=null) {
|
||||
if (line.startsWith("#"))
|
||||
continue;
|
||||
mentions.add(new Mention(line));
|
||||
}
|
||||
|
||||
int i=0;
|
||||
while (i<mentions.size() && mentions.get(i).isRefOffset==0) {
|
||||
i++;
|
||||
}
|
||||
firstRefOffset=i++;
|
||||
while (i<mentions.size() && mentions.get(i).isRefOffset==0) {
|
||||
i++;
|
||||
}
|
||||
secondRefOffset=i;
|
||||
if (i == mentions.size()) {
|
||||
throw new IOException("Inconsistent LOM, need two ref offsets");
|
||||
}
|
||||
}
|
||||
|
||||
List<Mention> getMentions() {
|
||||
return mentions;
|
||||
}
|
||||
|
||||
Mention getMentionAt(int i) {
|
||||
return mentions.get(i);
|
||||
}
|
||||
}
|
306
src/mentionmatch/MatrixComparison.java
Normal file
306
src/mentionmatch/MatrixComparison.java
Normal file
|
@ -0,0 +1,306 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package mentionmatch;
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author gbl
|
||||
*/
|
||||
|
||||
class MatrixComparison {
|
||||
|
||||
private class Coord implements Comparable {
|
||||
|
||||
int x; int y;
|
||||
private Coord(int bestX, int bestY) {
|
||||
x=bestX;
|
||||
y=bestY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Object o2) {
|
||||
if (o2 instanceof Coord) {
|
||||
return (this).x - ((Coord)o2).x;
|
||||
}
|
||||
throw new IllegalArgumentException("Coords can only be compared to coords");
|
||||
}
|
||||
}
|
||||
|
||||
ListOfMentions measure, reference;
|
||||
int meaStart, meaEnd, refStart, refEnd;
|
||||
float xAxisVal[], yAxisVal[];
|
||||
float[][] matrix;
|
||||
Coord[] matches;
|
||||
|
||||
MatrixComparison(ListOfMentions measure, int measureStart, int measureEnd, ListOfMentions reference, int referenceStart, int referenceEnd) {
|
||||
this.measure=measure;
|
||||
this.meaStart=measureStart;
|
||||
this.meaEnd=measureEnd;
|
||||
|
||||
this.reference=reference;
|
||||
this.refStart=referenceStart;
|
||||
this.refEnd=referenceEnd;
|
||||
|
||||
matrix=new float[meaEnd-meaStart+1][];
|
||||
for (int i=0; i<meaEnd-meaStart+1; i++) {
|
||||
matrix[i]=new float[refEnd-refStart+1];
|
||||
}
|
||||
|
||||
xAxisVal=new float[meaEnd-meaStart+1];
|
||||
yAxisVal=new float[refEnd-refStart+1];
|
||||
|
||||
matches=null;
|
||||
}
|
||||
|
||||
void process() {
|
||||
|
||||
System.out.printf("comparing measure indexes %d-%d to reference %d-%d\n", meaStart, meaEnd, refStart, refEnd);
|
||||
|
||||
// Create a matrix that has, as its X axis, mea positions normalized to [0,1],
|
||||
// and as its Y axis, ref positions, normalized as well. For example, the
|
||||
// measurement list [0, 4, 5, 10] and the reference list [0, 6, 9, 12]
|
||||
// will lead to
|
||||
// 0.0 0.4 0.5 1.0
|
||||
// 0.0
|
||||
// 0.5
|
||||
// 0.75
|
||||
// 1.0
|
||||
//
|
||||
// then fill it with the distances:
|
||||
// 0.0 0.4 0.5 1.0
|
||||
// 0.0 0.0 0.4 0.5 1.0
|
||||
// 0.5 0.5 0.1 0.0 0.5
|
||||
// 0.75 0.75 0.35 0.25 0.25
|
||||
// 1.0 1.0 0.6 0.5 0.0
|
||||
// Actually we don't store the axes, just the contents.
|
||||
|
||||
for (int x=0; x<meaEnd-meaStart+1; x++)
|
||||
xAxisVal[x] = normalize(measure.getMentionAt(x+meaStart).peakPos, measure.getMentionAt(meaStart).peakPos, measure.getMentionAt(meaEnd).peakPos);
|
||||
for (int y=0; y<refEnd-refStart+1; y++)
|
||||
yAxisVal[y] = normalize(reference.getMentionAt(y+refStart).peakPos, reference.getMentionAt(refStart).peakPos, reference.getMentionAt(refEnd).peakPos);
|
||||
|
||||
for (int x=0; x<meaEnd-meaStart+1; x++) {
|
||||
for (int y=0; y<refEnd-refStart+1; y++) {
|
||||
matrix[x][y]=Math.abs(yAxisVal[y]-xAxisVal[x]);
|
||||
}
|
||||
}
|
||||
dumpMatrix("filled distances");
|
||||
|
||||
// Now mark possible matches; there can be only one match per row and column
|
||||
// (so the number of matches is the minimum of rows/columns), each placement
|
||||
// goes to the cell that has the lowest value in the matrix and isn't already
|
||||
// blocked my another match in the same row or column. This leads to
|
||||
// 0.0 0.4 0.5 1.0
|
||||
// 0.0 *0.0 0.4 0.5 1.0
|
||||
// 0.5 0.5 0.1 *0.0 0.5
|
||||
// 0.75 0.75 *0.35 0.25 0.25
|
||||
// 1.0 1.0 0.6 0.5 *0.0
|
||||
|
||||
|
||||
int numberOfMatches = Math.min(refEnd-refStart+1, meaEnd-meaStart+1);
|
||||
matches=new Coord[numberOfMatches];
|
||||
boolean blockedX[]=new boolean[meaEnd-meaStart+1];
|
||||
boolean blockedY[]=new boolean[refEnd-refStart+1];
|
||||
|
||||
for (int i=0; i<numberOfMatches; i++) {
|
||||
float lowestValue = Float.MAX_VALUE; // ensure we find a lower matrix value
|
||||
int bestX=-1, bestY=-1;
|
||||
for (int x=0; x<meaEnd-meaStart+1; x++) {
|
||||
if (blockedX[x])
|
||||
continue;
|
||||
for (int y=0; y<refEnd-refStart+1; y++) {
|
||||
if (blockedY[y])
|
||||
continue;
|
||||
if (matrix[x][y] < lowestValue) {
|
||||
bestX=x;
|
||||
bestY=y;
|
||||
lowestValue = matrix[x][y];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bestX==-1 || bestY==-1) {
|
||||
System.err.println("Finding a matrix value didn't actually find anything\n");
|
||||
System.exit(1);
|
||||
}
|
||||
matches[i]=new Coord(bestX, bestY);
|
||||
blockedX[bestX]=true;
|
||||
blockedY[bestY]=true;
|
||||
}
|
||||
dumpMatrix("tried to match");
|
||||
|
||||
/* Forget about this now; this doesn't work.
|
||||
|
||||
// There may still be an occasional swap, like with 0.1/0.0/0.35/0.25 above.
|
||||
// On the measurements, this looks like this:
|
||||
// M----------------U---V-----------------N
|
||||
// M--------------------W---X-------------N
|
||||
// This may either be due to inconsistent stretching (in which case UX/VW
|
||||
// should be turned into UW/VX), or one new wire break (U) and an old one
|
||||
// that wasn't recognized (X). We assume it's inconsistent stretching and
|
||||
// swap the matches if the rations AU/AW, UV/WX and VB/XB are close to 1.0,
|
||||
// and assume it's new/old breaks if they aren't.
|
||||
// Note we can also have something like
|
||||
// M---------------A-B-C-D----------------N
|
||||
// M-----------P-Q-R-S--------------------N
|
||||
// where we get AR/BS/CQ/DP but want AP/BQ/CR/DS.
|
||||
|
||||
Arrays.sort(matches);
|
||||
float maxAllowedStretch = ratio(matches[matches.length-1].x, matches[matches.length-1].y)*1.1f; // allow 10% stretch
|
||||
for (int i=0; i<matches.length-1; i++) {
|
||||
if (matches[i].y > matches[i+1].y) { // i=B, i+1=C in above case
|
||||
// find the last pair that has decrementing Y (DP)
|
||||
int decrementingLength=1;
|
||||
int minInvolvedY=matches[i+1].y;
|
||||
while (i+decrementingLength < matches.length-1
|
||||
&& matches[i].y > matches[i+decrementingLength+1].y) {
|
||||
if (minInvolvedY > matches[i+decrementingLength+1].y) {
|
||||
minInvolvedY = matches[i+decrementingLength+1].y;
|
||||
}
|
||||
decrementingLength++;
|
||||
}
|
||||
// here, i should index B, and decrementingLength should be 2 so i+DL indexes D
|
||||
// next, count how many elements we need to go back from S to find P. As matches
|
||||
// is sorted by X, and we don't have a sorted array of Y's, count how many
|
||||
// Ys that are actually referenced are in [P, S] - here, 4.
|
||||
int matchingYs=0;
|
||||
for (int j=0; j<matches.length; j++) {
|
||||
if (matches[j].y >= minInvolvedY
|
||||
&& matches[j].y <= matches[i].y) {
|
||||
matchingYs++;
|
||||
}
|
||||
}
|
||||
int lastChainX=i+decrementingLength; // find D
|
||||
int firstChainX=i+decrementingLength+1-matchingYs; // find A
|
||||
if (ratio(xAxisVal[matches[firstChainX].x]-0.0f, yAxisVal[matches[lastChainX].y]-0.0f) < maxAllowedStretch // compare MA to MP
|
||||
&& ratio(xAxisVal[matches[lastChainX].x]-xAxisVal[matches[firstChainX].x], yAxisVal[matches[i].y]-yAxisVal[matches[lastChainX].y]) < maxAllowedStretch // compare AD to PS
|
||||
&& ratio(1.0f-xAxisVal[matches[lastChainX].x], 1.0f-yAxisVal[matches[i].y]) < maxAllowedStretch) {
|
||||
System.out.printf("I should switch between %d and %d but don't know how yet\n", firstChainX, lastChainX);
|
||||
int[] resorted = new int[lastChainX-firstChainX+1];
|
||||
// switch: AR BS CQ DP to AP BQ CR DS
|
||||
} else {
|
||||
// remove match CQ, DP
|
||||
for (int j=1; j<=decrementingLength; j++) {
|
||||
matches[i+j].x=matches[i+j].y=-1;
|
||||
}
|
||||
}
|
||||
i+=decrementingLength; // so it starts after current stretch on next iteration
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
Arrays.sort(matches);
|
||||
for (int i=0; i<matches.length-1; i++) {
|
||||
if (matches[i+1].x==-1 || matches[i+1].y==-1)
|
||||
break;
|
||||
if (matches[i].y > matches[i+1].y) {
|
||||
// we have a backwards match; eliminate the worse one of the both
|
||||
// by copying the following elements back and replacing the
|
||||
// last one with invalid (-1,-1)
|
||||
float myDistance=matrix[matches[i].x][matches[i].y];
|
||||
float nextDistance=matrix[matches[i+1].x][matches[i+1].y];
|
||||
|
||||
for (int j=(myDistance > nextDistance ? i : i+1); j<matches.length-1; j++) {
|
||||
matches[j]=matches[j+1];
|
||||
}
|
||||
matches[matches.length-1]=new Coord(-1, -1);
|
||||
i=-1; // and redo from start, the previous match might be broken as well
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Normalize a value X in an interval from A to B to a value from 0.0 to 1.0
|
||||
* depending on the position between A and B.
|
||||
* @param x the value to normalize
|
||||
* @param a the interval start
|
||||
* @param b the interval end
|
||||
* @return the normalized value between 0 and 1
|
||||
*/
|
||||
private float normalize(int x, int a, int b) {
|
||||
return (float)(x-a)/(float)(b-a);
|
||||
}
|
||||
|
||||
private float ratio(float a, float b) {
|
||||
float x = ( a > b ? a / b : b / a );
|
||||
System.out.printf("rrrrrr ratio of %6.2f and %6.2f is %6.2f\n", a, b, x);
|
||||
return x;
|
||||
}
|
||||
|
||||
private void dumpMatrix(String header) {
|
||||
System.out.println("============ "+header+" ================");
|
||||
System.out.printf("%8s", "");
|
||||
for (int x=0; x<meaEnd-meaStart+1; x++) {
|
||||
System.out.printf("%10.5f ", xAxisVal[x]);
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
for (int y=0; y<refEnd-refStart+1; y++) {
|
||||
System.out.printf("%8.5f", yAxisVal[y]);
|
||||
for (int x=0; x<meaEnd-meaStart+1; x++) {
|
||||
System.out.printf("%10.5f", matrix[x][y]);
|
||||
boolean isMatch=false;
|
||||
if (matches != null) {
|
||||
for (int i=0; i<matches.length; i++) {
|
||||
if (x==matches[i].x && y==matches[i].y) {
|
||||
isMatch=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.print(isMatch ? '*' : ' ');
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
System.out.println("---------------------------------------");
|
||||
}
|
||||
|
||||
void print(PrintStream out) {
|
||||
dumpMatrix("final comparison matrix");
|
||||
|
||||
System.out.println("+++ matching mentions");
|
||||
for (int i=0; i<matches.length; i++) {
|
||||
if (matches[i].x != -1 && matches[i].y != -1) {
|
||||
System.out.printf("Measure index %3d type %-20s at %10d matches reference %3d type %-20s at %10d with delta %5.3f\n",
|
||||
matches[i].x+meaStart, measure.getMentionAt(matches[i].x+meaStart).description, measure.getMentionAt(matches[i].x+meaStart).peakPos,
|
||||
matches[i].y+refStart, reference.getMentionAt(matches[i].y+refStart).description, reference.getMentionAt(matches[i].y+refStart).peakPos,
|
||||
matrix[matches[i].x][matches[i].y]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("+++ new mentions");
|
||||
for (int x=0; x<=meaEnd-meaStart; x++) {
|
||||
boolean isMatch=false;
|
||||
for (int i=0; i<matches.length; i++) {
|
||||
if (matches[i].x == x) {
|
||||
isMatch=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isMatch) {
|
||||
System.out.printf("Measure index %3d type %-20s at %10d is new\n", x+meaStart, measure.getMentionAt(x+meaStart).description, measure.getMentionAt(x+meaStart).peakPos);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("+++ in reference but not found");
|
||||
for (int y=0; y<=refEnd-refStart; y++) {
|
||||
boolean isMatch=false;
|
||||
for (int i=0; i<matches.length; i++) {
|
||||
if (matches[i].y == y) {
|
||||
isMatch=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isMatch) {
|
||||
System.out.printf("Reference index %3d type %-20s at %10d is new\n", y+refStart, reference.getMentionAt(y+refStart).description, reference.getMentionAt(y+refStart).peakPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
37
src/mentionmatch/Mention.java
Normal file
37
src/mentionmatch/Mention.java
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package mentionmatch;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author gbl
|
||||
*/
|
||||
class Mention {
|
||||
|
||||
String description;
|
||||
int index;
|
||||
int start, end, peakPos;
|
||||
float peakFactor;
|
||||
int isRefOffset, refIndex, anaFixed;
|
||||
|
||||
Mention(String line) {
|
||||
String[] fields=line.split("\t");
|
||||
try {
|
||||
description=fields[0];
|
||||
index=Integer.parseInt(fields[1]);
|
||||
start=Integer.parseInt(fields[2]);
|
||||
end=Integer.parseInt(fields[3]);
|
||||
peakPos=Integer.parseInt(fields[4]);
|
||||
peakFactor=Float.parseFloat(fields[5]);
|
||||
isRefOffset=Integer.parseInt(fields[6]);
|
||||
refIndex=Integer.parseInt(fields[7]);
|
||||
anaFixed=Integer.parseInt(fields[8]);
|
||||
} catch (NumberFormatException ex) {
|
||||
System.out.println("Number parse exception: "+ex);
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
}
|
31
src/mentionmatch/MentionMatch.java
Normal file
31
src/mentionmatch/MentionMatch.java
Normal file
|
@ -0,0 +1,31 @@
|
|||
package mentionmatch;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class MentionMatch {
|
||||
|
||||
public static void main(String[] args) {
|
||||
String workDirectory;
|
||||
ListOfMentions measure, reference;
|
||||
|
||||
if (args.length >= 1) {
|
||||
workDirectory=args[0];
|
||||
} else {
|
||||
workDirectory=".";
|
||||
}
|
||||
|
||||
try {
|
||||
measure=new ListOfMentions(new File(workDirectory, "abr_wb_meawblom.csv"));
|
||||
reference=new ListOfMentions(new File(workDirectory, "abr_wb_refwblom.csv"));
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
System.exit(1);
|
||||
return;
|
||||
}
|
||||
|
||||
Comparison result=new Comparison(measure, reference);
|
||||
result.process();
|
||||
result.print(System.out);
|
||||
}
|
||||
}
|
1
testcase_1/README
Normal file
1
testcase_1/README
Normal file
|
@ -0,0 +1 @@
|
|||
Measurement and Reference identical.
|
5
testcase_1/abr_wb_meawblom.csv
Normal file
5
testcase_1/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 300 300 300 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
5
testcase_1/abr_wb_refwblom.csv
Normal file
5
testcase_1/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 300 300 300 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
1
testcase_2/README
Normal file
1
testcase_2/README
Normal file
|
@ -0,0 +1 @@
|
|||
One wirebreak missing in measurement
|
4
testcase_2/abr_wb_meawblom.csv
Normal file
4
testcase_2/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,4 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
splice end 2 500 500 500 50 0 1 0
|
||||
splice begin 3 1000 1000 1000 50 1 0 1
|
|
5
testcase_2/abr_wb_refwblom.csv
Normal file
5
testcase_2/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 300 300 300 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
1
testcase_3/README
Normal file
1
testcase_3/README
Normal file
|
@ -0,0 +1 @@
|
|||
one new wirebreak in measurement
|
5
testcase_3/abr_wb_meawblom.csv
Normal file
5
testcase_3/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 300 300 300 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
4
testcase_3/abr_wb_refwblom.csv
Normal file
4
testcase_3/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,4 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
splice end 2 500 500 500 50 0 -1 0
|
||||
splice begin 3 1000 1000 1000 50 1 0 1
|
|
1
testcase_4/README
Normal file
1
testcase_4/README
Normal file
|
@ -0,0 +1 @@
|
|||
both wirebreak shifted slightly
|
5
testcase_4/abr_wb_meawblom.csv
Normal file
5
testcase_4/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 195 195 195 50 0 -1 0
|
||||
wire break 2 305 305 305 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
5
testcase_4/abr_wb_refwblom.csv
Normal file
5
testcase_4/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 300 300 300 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
1
testcase_5/README
Normal file
1
testcase_5/README
Normal file
|
@ -0,0 +1 @@
|
|||
measurement rope 10% longer than reference rope
|
5
testcase_5/abr_wb_meawblom.csv
Normal file
5
testcase_5/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 110 110 110 50 1 0 1
|
||||
wire break 1 220 220 220 50 0 -1 0
|
||||
wire break 2 330 330 330 50 0 -1 0
|
||||
splice end 3 550 550 550 50 0 -1 0
|
||||
splice begin 4 1100 1100 1100 50 1 0 1
|
|
5
testcase_5/abr_wb_refwblom.csv
Normal file
5
testcase_5/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 300 300 300 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
1
testcase_6/README
Normal file
1
testcase_6/README
Normal file
|
@ -0,0 +1 @@
|
|||
wirebreak moved from 200 to 400
|
5
testcase_6/abr_wb_meawblom.csv
Normal file
5
testcase_6/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 300 300 300 50 0 -1 0
|
||||
wire break 2 400 400 400 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
5
testcase_6/abr_wb_refwblom.csv
Normal file
5
testcase_6/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 300 300 300 50 0 -1 0
|
||||
splice end 3 500 500 500 50 0 -1 0
|
||||
splice begin 4 1000 1000 1000 50 1 0 1
|
|
1
testcase_7/README
Normal file
1
testcase_7/README
Normal file
|
@ -0,0 +1 @@
|
|||
series of wirebreaks shifted a bit
|
8
testcase_7/abr_wb_meawblom.csv
Normal file
8
testcase_7/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,8 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 210 210 210 50 0 -1 0
|
||||
wire break 3 220 220 220 50 0 -1 0
|
||||
wire break 4 230 230 230 50 0 -1 0
|
||||
wire break 5 300 300 300 50 0 -1 0
|
||||
splice end 6 500 500 500 50 0 -1 0
|
||||
splice begin 7 1000 1000 1000 50 1 0 1
|
|
8
testcase_7/abr_wb_refwblom.csv
Normal file
8
testcase_7/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,8 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 210 210 210 50 0 -1 0
|
||||
wire break 2 220 220 220 50 0 -1 0
|
||||
wire break 3 230 230 230 50 0 -1 0
|
||||
wire break 4 240 240 240 50 0 -1 0
|
||||
wire break 5 300 300 300 50 0 -1 0
|
||||
splice end 6 500 500 500 50 0 -1 0
|
||||
splice begin 7 1000 1000 1000 50 1 0 1
|
|
1
testcase_8/README
Normal file
1
testcase_8/README
Normal file
|
@ -0,0 +1 @@
|
|||
series of wirebreaks shifted a bit
|
8
testcase_8/abr_wb_meawblom.csv
Normal file
8
testcase_8/abr_wb_meawblom.csv
Normal file
|
@ -0,0 +1,8 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 200 200 200 50 0 -1 0
|
||||
wire break 2 210 210 210 50 0 -1 0
|
||||
wire break 3 220 220 220 50 0 -1 0
|
||||
wire break 4 230 230 230 50 0 -1 0
|
||||
wire break 5 300 300 300 50 0 -1 0
|
||||
splice end 6 500 500 500 50 0 -1 0
|
||||
splice begin 7 1000 1000 1000 50 1 0 1
|
|
8
testcase_8/abr_wb_refwblom.csv
Normal file
8
testcase_8/abr_wb_refwblom.csv
Normal file
|
@ -0,0 +1,8 @@
|
|||
splice begin 0 100 100 100 50 1 0 1
|
||||
wire break 1 190 190 190 50 0 -1 0
|
||||
wire break 2 200 200 200 50 0 -1 0
|
||||
wire break 3 210 210 210 50 0 -1 0
|
||||
wire break 4 220 220 220 50 0 -1 0
|
||||
wire break 5 300 300 300 50 0 -1 0
|
||||
splice end 6 500 500 500 50 0 -1 0
|
||||
splice begin 7 1000 1000 1000 50 1 0 1
|
|
Loading…
Reference in New Issue
Block a user