bug6096: first compilable version of sailwave.html result

providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
providerbug6096: first compilable version of sailwave.html result
provider
This commit is contained in:
Axel Uhl
2025-02-20 17:05:08 +01:00
parent 119029c583
commit a2796abe1a
27 changed files with 2868 additions and 0 deletions
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="resources">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.sap.sailing.sailwave.html.resultimport.test</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
@@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
@@ -0,0 +1,3 @@
eclipse.preferences.version=1
pluginProject.extensions=false
resolve.requirebundle=false
@@ -0,0 +1,10 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Test
Bundle-SymbolicName: com.sap.sailing.sailwave.html.resultimport.test
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Fragment-Host: com.sap.sailing.sailwave.html.resultimport
Require-Bundle: org.junit
Automatic-Module-Name: com.sap.sailing.sailwave.html.resultimport.test
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -0,0 +1,4 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>root</artifactId>
<groupId>com.sap.sailing</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>com.sap.sailing.sailwave.html.resultimport.test</artifactId>
<packaging>eclipse-test-plugin</packaging>
</project>
@@ -0,0 +1,542 @@
<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=Big5">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="sailwave results">
<meta name="viewport" content="width=device-width">
<title>Sailwave results for 2025 29er Asian Championship at 2025</title>
<style type="text/css">
body {font: 72% arial, helvetica, sans-serif; text-align: center;}
.hardleft {text-align: left; float: left; margin: 15px 0 15px 25px;}
.hardright {text-align: right; float: right; margin: 15px 25px 15px 0;}
table {text-align: left; margin: 0px auto 30px auto; font-size: 1em; border-collapse: collapse; border: 1px #fff solid;}
td, th {padding: 4px; border: 2px #fff solid; vertical-align: top;}
.caption {padding: 5px; text-align: center; border: 0; font-weight: bold;}
h1 {font-size: 1.6em;}
h2 {font-size: 1.4em;}
h3 {font-size: 1.2em;}
p {text-align: center;}
th {background-color: #aaf;}
.contents {text-align: left; margin-left: 20%;}
.even {background-color: #bbf;}
.odd {background-color: #ddf;}
.natflag {border: 1px #999 solid;}
.nattext {font-size: 0.8em;}
.place1 {font-weight: bold; background-color: #ffffaa;}
.place2 {font-weight: bold; background-color: #aaaaff;}
.place3 {font-weight: bold; background-color: #ffaaaa;}
.placen {}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<header>
</header>
<div id="wrap">
<h1>2025 29er Asian Championship</h1>
<h2></h2>
<div style="clear:both;"></div>
<style>
div.applicant-break {page-break-after:always;}
</style>
<h3 class="seriestitle">Results are provisional as of 19:09 on February 15, 2025</h3>
<h3 class="summarytitle">Overall</h3>
<div class="caption summarycaption">Sailed: 12, Discards: 2, To count: 10, Entries: 19, Scoring system: Appendix A</div>
<table class="summarytable" cellspacing="0" cellpadding="0" border="0">
<colgroup span="20">
<col class="rank">
<col class="class">
<col class="division">
<col class="nat">
<col class="sailno">
<col class="helmname">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="total">
<col class="nett">
</colgroup>
<thead>
<tr class="titlerow">
<th>Rank</th>
<th>Class</th>
<th>Divisions</th>
<th>Nat</th>
<th>Sail No</th>
<th>Sailors</th>
<th>R1</th>
<th>R2</th>
<th>R3</th>
<th>R4</th>
<th>R5</th>
<th>R6</th>
<th>R7</th>
<th>R8</th>
<th>R9</th>
<th>R10</th>
<th>R11</th>
<th>R12</th>
<th>Total</th>
<th>Nett</th>
</tr>
</thead>
<tbody>
<tr class="odd summaryrow">
<td>1st</td>
<td>29er</td>
<td>Mixed</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3356</td>
<td>Raphael Mak, Tiffany Mak</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank2">2.0</td>
<td class="rank3">(3.0)</td>
<td class="rank3">3.0</td>
<td class="rank2">2.0</td>
<td class="rank1">1.0</td>
<td>(6.0)</td>
<td class="rank1">1.0</td>
<td class="rank2">2.0</td>
<td class="rank2">2.0</td>
<td>25.0</td>
<td>16.0</td>
</tr>
<tr class="even summaryrow">
<td>2nd</td>
<td>29er</td>
<td>Men</td>
<td><img class="natflag" title="USA" src="29er_files/USA.jpg"></td>
<td>20</td>
<td>Kevin Cason, Holland Vierling</td>
<td>(7.0)</td>
<td>(6.0)</td>
<td class="rank3">3.0</td>
<td class="rank1">1.0</td>
<td class="rank2">2.0</td>
<td class="rank1">1.0</td>
<td>5.0</td>
<td class="rank3">3.0</td>
<td class="rank2">2.0</td>
<td class="rank2">2.0</td>
<td class="rank1">1.0</td>
<td class="rank3">3.0</td>
<td>36.0</td>
<td>23.0</td>
</tr>
<tr class="odd summaryrow">
<td>3rd</td>
<td>29er</td>
<td>Mixed</td>
<td><img class="natflag" title="THA" src="29er_files/THA.jpg"></td>
<td>621</td>
<td>Patcharaphan Ongkaloy, Kan Kachachuen</td>
<td>4.0</td>
<td class="rank3">3.0</td>
<td>(6.0)</td>
<td class="rank3">3.0</td>
<td>5.0</td>
<td class="rank2">2.0</td>
<td>6.0</td>
<td class="rank2">2.0</td>
<td>4.0</td>
<td>(7.0)</td>
<td>5.0</td>
<td>4.0</td>
<td>51.0</td>
<td>38.0</td>
</tr>
<tr class="even summaryrow">
<td>4th</td>
<td>29er</td>
<td>Junior , Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3354</td>
<td>Ethan Kiu, Louis Polson</td>
<td class="rank2">2.0</td>
<td>(8.0)</td>
<td class="rank2">2.0</td>
<td>7.0</td>
<td>(9.0)</td>
<td>7.0</td>
<td class="rank1">1.0</td>
<td>6.0</td>
<td class="rank3">3.0</td>
<td>8.0</td>
<td>4.0</td>
<td class="rank1">1.0</td>
<td>58.0</td>
<td>41.0</td>
</tr>
<tr class="odd summaryrow">
<td>5th</td>
<td>29er</td>
<td>Women</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>2840</td>
<td>Sienne Thiry, Tomoe Thiry</td>
<td class="rank3">3.0</td>
<td>5.0</td>
<td>7.0</td>
<td>4.0</td>
<td>4.0</td>
<td>4.0</td>
<td>4.0</td>
<td>(20.0 DSQ)</td>
<td>5.0</td>
<td>(9.0)</td>
<td>8.0</td>
<td>5.0</td>
<td>78.0</td>
<td>49.0</td>
</tr>
<tr class="even summaryrow">
<td>6th</td>
<td>29er</td>
<td>Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3398</td>
<td>Ayden Pang, Xu Peng CHEN</td>
<td>6.0</td>
<td>4.0</td>
<td>4.0</td>
<td>(11.0)</td>
<td>6.0</td>
<td>11.0</td>
<td>(20.0 DSQ)</td>
<td>5.0</td>
<td>7.0</td>
<td>5.0</td>
<td class="rank3">3.0</td>
<td>7.0</td>
<td>89.0</td>
<td>58.0</td>
</tr>
<tr class="odd summaryrow">
<td>7th</td>
<td>29er</td>
<td>Mixed</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>2566</td>
<td>Chloe Kong, Ethan Kong</td>
<td>5.0</td>
<td>11.0</td>
<td>5.0</td>
<td>5.0</td>
<td>8.0</td>
<td>6.0</td>
<td>(20.0 SCP50)</td>
<td>(20.0 DSQ)</td>
<td>9.0</td>
<td>6.0</td>
<td>6.0</td>
<td>6.0</td>
<td>107.0</td>
<td>67.0</td>
</tr>
<tr class="even summaryrow">
<td>8th</td>
<td>29er</td>
<td>Junior , Women</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3355</td>
<td>ZiHan Liu, Bernice Pang</td>
<td>8.0</td>
<td>(12.0)</td>
<td>10.0</td>
<td>(12.0)</td>
<td>11.0</td>
<td>9.0</td>
<td class="rank3">3.0</td>
<td>4.0</td>
<td class="rank1">1.0</td>
<td class="rank3">3.0</td>
<td>10.0</td>
<td>9.0</td>
<td>92.0</td>
<td>68.0</td>
</tr>
<tr class="odd summaryrow">
<td>9th</td>
<td>29er</td>
<td>Junior , Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3405</td>
<td>Nicholas Hon, Kaden Chan</td>
<td>(12.0)</td>
<td class="rank2">2.0</td>
<td>8.0</td>
<td>10.0</td>
<td>(15.0)</td>
<td>12.0</td>
<td>12.0</td>
<td>7.0</td>
<td>10.0</td>
<td>4.0</td>
<td>7.0</td>
<td>8.0</td>
<td>107.0</td>
<td>80.0</td>
</tr>
<tr class="even summaryrow">
<td>10th</td>
<td>29er</td>
<td>Women</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3393</td>
<td>Kristen Hwang, McCarley Wong</td>
<td>9.0</td>
<td>7.0</td>
<td>12.0</td>
<td>8.0</td>
<td>7.0</td>
<td>5.0</td>
<td>7.0</td>
<td>10.0</td>
<td>8.0</td>
<td>(14.0)</td>
<td>(13.0)</td>
<td>10.0</td>
<td>110.0</td>
<td>83.0</td>
</tr>
<tr class="odd summaryrow">
<td>11th</td>
<td>29er</td>
<td>Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3055</td>
<td>Yan Cheuk NG, Kam Hing HU</td>
<td>11.0</td>
<td>9.0</td>
<td>9.0</td>
<td>6.0</td>
<td>(13.0)</td>
<td>10.0</td>
<td>9.0</td>
<td>(20.0 DSQ)</td>
<td>12.0</td>
<td>11.0</td>
<td>9.0</td>
<td>11.0</td>
<td>130.0</td>
<td>97.0</td>
</tr>
<tr class="even summaryrow">
<td>12th</td>
<td>29er</td>
<td>Junior , Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3383</td>
<td>James Ashwood, Conrad Lumsden</td>
<td>(13.0)</td>
<td>10.0</td>
<td>11.0</td>
<td>9.0</td>
<td>12.0</td>
<td>(20.0 RET)</td>
<td>8.0</td>
<td>9.0</td>
<td>13.0</td>
<td>12.0</td>
<td>11.0</td>
<td>12.0</td>
<td>140.0</td>
<td>107.0</td>
</tr>
<tr class="odd summaryrow">
<td>13th</td>
<td>29er</td>
<td>Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3056</td>
<td>Kyle Lee, Brandon Liu</td>
<td>10.0</td>
<td>(14.0)</td>
<td>(13.0)</td>
<td>13.0</td>
<td>10.0</td>
<td>13.0</td>
<td>10.0</td>
<td>8.0</td>
<td>11.0</td>
<td>10.0</td>
<td>12.0</td>
<td>13.0</td>
<td>137.0</td>
<td>110.0</td>
</tr>
<tr class="even summaryrow">
<td>14th</td>
<td>29er</td>
<td>Mixed</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>2750</td>
<td>Hins Law, Daisy Chan</td>
<td>14.0</td>
<td>13.0</td>
<td>14.0</td>
<td>14.0</td>
<td>(16.0)</td>
<td>14.0</td>
<td>13.0</td>
<td>(20.0 UFD)</td>
<td>15.0</td>
<td>13.0</td>
<td>14.0</td>
<td>14.0</td>
<td>174.0</td>
<td>138.0</td>
</tr>
<tr class="odd summaryrow">
<td>15th</td>
<td>29er</td>
<td>Junior , Women</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>2846</td>
<td>Alexandra Yam, Keira Slaughter</td>
<td>15.0</td>
<td>15.0</td>
<td>(20.0 RET)</td>
<td>(20.0 DNF)</td>
<td>20.0 RET</td>
<td>15.0</td>
<td>14.0</td>
<td>12.0</td>
<td>14.0</td>
<td>16.0</td>
<td>15.0</td>
<td>15.0</td>
<td>191.0</td>
<td>151.0</td>
</tr>
<tr class="even summaryrow">
<td>16th</td>
<td>29er</td>
<td>Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>3053</td>
<td>Cameron Law, Christopher Lam</td>
<td>(20.0 DNC)</td>
<td>(20.0 DNC)</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td class="rank1">1.0</td>
<td>8.0</td>
<td>4.5 RDG</td>
<td>20.0 DNS</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>193.5</td>
<td>153.5</td>
</tr>
<tr class="odd summaryrow">
<td>17th</td>
<td>29er</td>
<td>Junior, Mixed</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>2531</td>
<td>Belmira Iong, Alfred Fong</td>
<td>(20.0 NSC)</td>
<td>(20.0 NSC)</td>
<td>20.0 DNS</td>
<td>20.0 RET</td>
<td>17.0</td>
<td>20.0 DNF</td>
<td>20.0 DNF</td>
<td>13.0</td>
<td>16.0</td>
<td>15.0</td>
<td>16.0</td>
<td>16.0</td>
<td>213.0</td>
<td>173.0</td>
</tr>
<tr class="even summaryrow">
<td>18th</td>
<td>29er</td>
<td>Mixed</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>2521</td>
<td>Jade Zirah, Alfred Yip</td>
<td>16.0</td>
<td>(20.0 DNF)</td>
<td>(20.0 DNF)</td>
<td>20.0 RET</td>
<td>14.0</td>
<td>20.0 RET</td>
<td>15.0</td>
<td>11.0</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>216.0</td>
<td>176.0</td>
</tr>
<tr class="odd summaryrow">
<td>19th</td>
<td>29er</td>
<td>Junior , Men</td>
<td><img class="natflag" title="HKG" src="29er_files/HKG.jpg"></td>
<td>2411</td>
<td>Sebastian Chun, Ambrose Chan</td>
<td>(20.0 DNC)</td>
<td>(20.0 DNC)</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>20.0 DNC</td>
<td>240.0</td>
<td>200.0</td>
</tr>
</tbody>
</table>
<p class="hardleft"><a href="https://"></a><br><a href="mailto:"></a></p>
<p class="hardright"><a href="https://"></a><br><a href="mailto:"></a></p>
<p>Sailwave Scoring Software 2.37.00<br><a href="https://www.sailwave.com/">www.sailwave.com</a></p>
</div>
<footer>
</footer>
<div id="scrollbottom"></div>
</body></html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,422 @@
<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=Big5">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="sailwave results">
<meta name="viewport" content="width=device-width">
<title>Sailwave results for Sun Hung Kai &amp; Co. Hong Kong Race Week 2025 at 2025</title>
<style type="text/css">
body {font: 72% arial, helvetica, sans-serif; text-align: center;}
.hardleft {text-align: left; float: left; margin: 15px 0 15px 25px;}
.hardright {text-align: right; float: right; margin: 15px 25px 15px 0;}
table {text-align: left; margin: 0px auto 30px auto; font-size: 1em; border-collapse: collapse; border: 1px #fff solid;}
td, th {padding: 4px; border: 2px #fff solid; vertical-align: top;}
.caption {padding: 5px; text-align: center; border: 0; font-weight: bold;}
h1 {font-size: 1.6em;}
h2 {font-size: 1.4em;}
h3 {font-size: 1.2em;}
p {text-align: center;}
th {background-color: #aaf;}
.contents {text-align: left; margin-left: 20%;}
.even {background-color: #bbf;}
.odd {background-color: #ddf;}
.natflag {border: 1px #999 solid;}
.nattext {font-size: 0.8em;}
.place1 {font-weight: bold; background-color: #ffffaa;}
.place2 {font-weight: bold; background-color: #aaaaff;}
.place3 {font-weight: bold; background-color: #ffaaaa;}
.placen {}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<header>
</header>
<div id="wrap">
<h1>Sun Hung Kai &amp; Co. Hong Kong Race Week 2025</h1>
<h2></h2>
<div style="clear:both;"></div>
<style>
div.applicant-break {page-break-after:always;}
</style>
<h3 class="seriestitle">Results are provisional as of 9:43 on February 16, 2025</h3>
<h3 class="summarytitle" id="summaryilca_6">ILCA 6 Class</h3>
<div class="caption summarycaption">Sailed: 9, Discards: 2, To count: 7, Entries: 17, Scoring system: Appendix A</div>
<table class="summarytable" cellspacing="0" cellpadding="0" border="0">
<colgroup span="16">
<col class="rank">
<col class="class">
<col class="nat">
<col class="sailno">
<col class="helmname">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="total">
<col class="nett">
</colgroup>
<thead>
<tr class="titlerow">
<th>Rank</th>
<th>Class</th>
<th>Nat</th>
<th>Sail No</th>
<th>Helm Name</th>
<th>R1</th>
<th>R2</th>
<th>R3</th>
<th>R4</th>
<th>R5</th>
<th>R6</th>
<th>R7</th>
<th>R8</th>
<th>R9</th>
<th>Total</th>
<th>Nett</th>
</tr>
</thead>
<tbody>
<tr class="odd summaryrow">
<td>1st</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>191713</td>
<td>Stephanie Norton</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank2">(2.0)</td>
<td class="rank1">1.0</td>
<td class="rank2">(2.0)</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td>11.0</td>
<td>7.0</td>
</tr>
<tr class="even summaryrow">
<td>2nd</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>211717</td>
<td>Nancy Highfield</td>
<td class="rank2">(2.0)</td>
<td class="rank2">2.0</td>
<td class="rank1">1.0</td>
<td class="rank2">2.0</td>
<td class="rank1">1.0</td>
<td class="rank2">2.0</td>
<td class="rank2">2.0</td>
<td>(11.0)</td>
<td class="rank2">2.0</td>
<td>25.0</td>
<td>12.0</td>
</tr>
<tr class="odd summaryrow">
<td>3rd</td>
<td>ILCA 6</td>
<td><img class="natflag" title="JPN" src="ILCA6_files/JPN.jpg"></td>
<td>208625</td>
<td>NANA Funazawa</td>
<td class="rank3">3.0</td>
<td>4.0</td>
<td>5.0</td>
<td class="rank3">3.0</td>
<td class="rank3">3.0</td>
<td class="rank3">3.0</td>
<td>4.0</td>
<td>(7.0)</td>
<td>(6.0)</td>
<td>38.0</td>
<td>25.0</td>
</tr>
<tr class="even summaryrow">
<td>4th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>223750</td>
<td>Daniel Kin Chung Chan</td>
<td>(10.0)</td>
<td class="rank3">3.0</td>
<td class="rank3">3.0</td>
<td>4.0</td>
<td>(5.0)</td>
<td>4.0</td>
<td class="rank3">3.0</td>
<td>4.0</td>
<td>4.0</td>
<td>40.0</td>
<td>25.0</td>
</tr>
<tr class="odd summaryrow">
<td>5th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="JPN" src="ILCA6_files/JPN.jpg"></td>
<td>217702</td>
<td>Haruka Hattori</td>
<td>4.0</td>
<td>6.0</td>
<td>8.0</td>
<td>8.0</td>
<td>7.0</td>
<td>(9.0)</td>
<td>5.0</td>
<td>(10.0)</td>
<td class="rank3">3.0</td>
<td>60.0</td>
<td>41.0</td>
</tr>
<tr class="even summaryrow">
<td>6th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>209319</td>
<td>Seb Van Ommeren</td>
<td>5.0</td>
<td>(8.0)</td>
<td>7.0</td>
<td>7.0</td>
<td>(13.0)</td>
<td>8.0</td>
<td>6.0</td>
<td class="rank2">2.0</td>
<td>8.0</td>
<td>64.0</td>
<td>43.0</td>
</tr>
<tr class="odd summaryrow">
<td>7th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="CHN" src="ILCA6_files/CHN.jpg"></td>
<td>223276</td>
<td>Xinran Chen</td>
<td>7.0</td>
<td>7.0</td>
<td>(11.0)</td>
<td>(9.0)</td>
<td>4.0</td>
<td>6.0</td>
<td>8.0</td>
<td>6.0</td>
<td>9.0</td>
<td>67.0</td>
<td>47.0</td>
</tr>
<tr class="even summaryrow">
<td>8th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="CHN" src="ILCA6_files/CHN.jpg"></td>
<td>210199</td>
<td>Haolun Xia</td>
<td>(11.0 SCP30%)</td>
<td>5.0</td>
<td>6.0</td>
<td>5.0</td>
<td>6.0</td>
<td>(11.0)</td>
<td>10.0</td>
<td>8.0</td>
<td>7.0</td>
<td>69.0</td>
<td>47.0</td>
</tr>
<tr class="odd summaryrow">
<td>9th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>213211</td>
<td>Xavier Wilde</td>
<td>8.0</td>
<td>(11.0)</td>
<td>4.0</td>
<td>6.0</td>
<td>9.0</td>
<td>7.0</td>
<td>(11.0)</td>
<td>9.0</td>
<td>5.0</td>
<td>70.0</td>
<td>48.0</td>
</tr>
<tr class="even summaryrow">
<td>10th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>221934</td>
<td>Samuel Tan-Hardy</td>
<td>9.0</td>
<td>9.0</td>
<td>10.0</td>
<td>(12.0)</td>
<td>8.0</td>
<td>5.0</td>
<td>9.0</td>
<td class="rank3">3.0</td>
<td>(11.0)</td>
<td>76.0</td>
<td>53.0</td>
</tr>
<tr class="odd summaryrow">
<td>11th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>221401</td>
<td>Ziyan Huang</td>
<td>11.0</td>
<td>10.0</td>
<td>9.0</td>
<td>10.0</td>
<td>11.0</td>
<td>10.0</td>
<td>7.0</td>
<td>(17.0)</td>
<td>(15.0 SCP30%)</td>
<td>100.0</td>
<td>68.0</td>
</tr>
<tr class="even summaryrow">
<td>12th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="SGP" src="ILCA6_files/SGP.jpg"></td>
<td>225262</td>
<td>John Gabriel LIM</td>
<td>(12.0)</td>
<td>12.0</td>
<td>12.0</td>
<td>11.0</td>
<td>10.0</td>
<td>12.0</td>
<td>12.0</td>
<td>(13.9 SCP5%)</td>
<td>12.0</td>
<td>106.9</td>
<td>81.0</td>
</tr>
<tr class="odd summaryrow">
<td>13th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="CHN" src="ILCA6_files/CHN.jpg"></td>
<td>225505</td>
<td>Yan Duo Pu</td>
<td>(15.0)</td>
<td>(16.0)</td>
<td>14.0</td>
<td>15.0</td>
<td>14.0</td>
<td>14.0</td>
<td>13.0</td>
<td>5.0</td>
<td>14.0</td>
<td>120.0</td>
<td>89.0</td>
</tr>
<tr class="even summaryrow">
<td>14th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>213316</td>
<td>Adam Kan</td>
<td>(13.0)</td>
<td>13.0</td>
<td>13.0</td>
<td>13.0</td>
<td>12.0</td>
<td>13.0</td>
<td>(14.0)</td>
<td>12.0</td>
<td>13.0</td>
<td>116.0</td>
<td>89.0</td>
</tr>
<tr class="odd summaryrow">
<td>15th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>213251</td>
<td>Nick Akov</td>
<td>14.0</td>
<td>(15.0)</td>
<td>(15.0)</td>
<td>14.0</td>
<td>15.0</td>
<td>15.0</td>
<td>15.0</td>
<td>14.0</td>
<td>15.0</td>
<td>132.0</td>
<td>102.0</td>
</tr>
<tr class="even summaryrow">
<td>16th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>211730</td>
<td>Jeremy Chan</td>
<td>(16.0)</td>
<td>14.0</td>
<td>16.0</td>
<td>16.0</td>
<td>16.0</td>
<td>16.0</td>
<td>(18.0 DNF)</td>
<td>16.0</td>
<td>16.0</td>
<td>144.0</td>
<td>110.0</td>
</tr>
<tr class="odd summaryrow">
<td>17th</td>
<td>ILCA 6</td>
<td><img class="natflag" title="HKG" src="ILCA6_files/HKG.jpg"></td>
<td>213343</td>
<td>Marcello Giamporcaro</td>
<td>(18.0 DNC)</td>
<td>(18.0 DNC)</td>
<td>18.0 DNC</td>
<td>18.0 DNC</td>
<td>18.0 DNC</td>
<td>18.0 DNC</td>
<td>18.0 DNC</td>
<td>15.0</td>
<td>17.0</td>
<td>158.0</td>
<td>122.0</td>
</tr>
</tbody>
</table>
<p class="hardleft"><a href="https://"></a><br><a href="mailto:"></a></p>
<p class="hardright"><a href="https://"></a><br><a href="mailto:"></a></p>
<p>Sailwave Scoring Software 2.37.00<br><a href="https://www.sailwave.com/">www.sailwave.com</a></p>
</div>
<footer>
</footer>
<div id="scrollbottom"></div>
</body></html>
@@ -0,0 +1,188 @@
<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=Big5">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="sailwave results">
<meta name="viewport" content="width=device-width">
<title>Sailwave results for Sun Hung Kai &amp; Co. Hong Kong Race Week 2025 at 2025</title>
<style type="text/css">
body {font: 72% arial, helvetica, sans-serif; text-align: center;}
.hardleft {text-align: left; float: left; margin: 15px 0 15px 25px;}
.hardright {text-align: right; float: right; margin: 15px 25px 15px 0;}
table {text-align: left; margin: 0px auto 30px auto; font-size: 1em; border-collapse: collapse; border: 1px #fff solid;}
td, th {padding: 4px; border: 2px #fff solid; vertical-align: top;}
.caption {padding: 5px; text-align: center; border: 0; font-weight: bold;}
h1 {font-size: 1.6em;}
h2 {font-size: 1.4em;}
h3 {font-size: 1.2em;}
p {text-align: center;}
th {background-color: #aaf;}
.contents {text-align: left; margin-left: 20%;}
.even {background-color: #bbf;}
.odd {background-color: #ddf;}
.natflag {border: 1px #999 solid;}
.nattext {font-size: 0.8em;}
.place1 {font-weight: bold; background-color: #ffffaa;}
.place2 {font-weight: bold; background-color: #aaaaff;}
.place3 {font-weight: bold; background-color: #ffaaaa;}
.placen {}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<header>
</header>
<div id="wrap">
<h1>Sun Hung Kai &amp; Co. Hong Kong Race Week 2025</h1>
<h2></h2>
<div style="clear:both;"></div>
<style>
div.applicant-break {page-break-after:always;}
</style>
<h3 class="seriestitle">Results are provisional as of 19:08 on February 15, 2025</h3>
<h3 class="summarytitle" id="summaryilca_7">ILCA 7 Class</h3>
<div class="caption summarycaption">Sailed: 9, Discards: 2, To count: 7, Entries: 4, Scoring system: Appendix A</div>
<table class="summarytable" cellspacing="0" cellpadding="0" border="0">
<colgroup span="16">
<col class="rank">
<col class="class">
<col class="nat">
<col class="sailno">
<col class="helmname">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="race">
<col class="total">
<col class="nett">
</colgroup>
<thead>
<tr class="titlerow">
<th>Rank</th>
<th>Class</th>
<th>Nat</th>
<th>Sail No</th>
<th>Helm Name</th>
<th>R1</th>
<th>R2</th>
<th>R3</th>
<th>R4</th>
<th>R5</th>
<th>R6</th>
<th>R7</th>
<th>R8</th>
<th>R9</th>
<th>Total</th>
<th>Nett</th>
</tr>
</thead>
<tbody>
<tr class="odd summaryrow">
<td>1st</td>
<td>ILCA 7</td>
<td><img class="natflag" title="HKG" src="ILCA7_files/HKG.jpg"></td>
<td>171979</td>
<td>Nicholas Halliday</td>
<td class="rank1">(1.0)</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank2">(2.0)</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td class="rank1">1.0</td>
<td>10.0</td>
<td>7.0</td>
</tr>
<tr class="even summaryrow">
<td>2nd</td>
<td>ILCA 7</td>
<td><img class="natflag" title="HKG" src="ILCA7_files/HKG.jpg"></td>
<td>215313</td>
<td>Peter Jessop</td>
<td class="rank2">(2.0)</td>
<td class="rank2">(2.0)</td>
<td class="rank2">2.0</td>
<td class="rank2">2.0</td>
<td class="rank1">1.0</td>
<td class="rank2">2.0</td>
<td class="rank2">2.0</td>
<td class="rank2">2.0</td>
<td class="rank2">2.0</td>
<td>17.0</td>
<td>13.0</td>
</tr>
<tr class="odd summaryrow">
<td>3rd</td>
<td>ILCA 7</td>
<td><img class="natflag" title="HKG" src="ILCA7_files/HKG.jpg"></td>
<td>150109</td>
<td>Michael Wilson</td>
<td>(5.0 DNF)</td>
<td>(5.0 DNF)</td>
<td class="rank3">5.0 DNF</td>
<td class="rank3">5.0 DNC</td>
<td class="rank3">5.0 DNC</td>
<td class="rank3">5.0 DNC</td>
<td class="rank3">5.0 DNC</td>
<td class="rank3">3.0</td>
<td class="rank3">3.0</td>
<td>41.0</td>
<td>31.0</td>
</tr>
<tr class="even summaryrow">
<td>4th</td>
<td>ILCA 7</td>
<td><img class="natflag" title="SWE" src="ILCA7_files/SWE.jpg"></td>
<td>221751</td>
<td>Axel Wieland</td>
<td class="rank3">3.0</td>
<td class="rank3">3.0</td>
<td class="rank3">(5.0 DNC)</td>
<td class="rank3">(5.0 DNC)</td>
<td class="rank3">5.0 DNC</td>
<td class="rank3">5.0 DNC</td>
<td class="rank3">5.0 DNC</td>
<td>5.0 DNC</td>
<td>5.0 DNC</td>
<td>41.0</td>
<td>31.0</td>
</tr>
</tbody>
</table>
<p class="hardleft"><a href="https://"></a><br><a href="mailto:"></a></p>
<p class="hardright"><a href="https://"></a><br><a href="mailto:"></a></p>
<p>Sailwave Scoring Software 2.37.00<br><a href="https://www.sailwave.com/">www.sailwave.com</a></p>
</div>
<footer>
</footer>
<div id="scrollbottom"></div>
</body></html>
@@ -0,0 +1,146 @@
package com.sap.sailing.sailwave.html.resultimport.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import org.junit.Test;
import com.sap.sailing.resultimport.CompetitorRow;
import com.sap.sailing.resultimport.RegattaResults;
import com.sap.sailing.sailwave.html.resultimport.impl.SailwaveHtmlParser;
import com.sap.sse.common.Util;
public class SimpleHtmlParsingTest {
@Test
public void testOpenSampleHtml() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("ILCA4.html")));
final String readLine = br.readLine();
assertNotNull(readLine);
br.close();
}
@Test
public void testMultiLineTD() throws IOException {
final InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("ILCA6.html");
SailwaveHtmlParser parser = new SailwaveHtmlParser();
final RegattaResults regattaResults = parser.getRegattaResults(resourceAsStream);
List<CompetitorRow> result = regattaResults.getCompetitorResults();
assertFalse(result.isEmpty());
assertEquals(17, result.size());
assertTrue(regattaResults.getMetadata().get("seriestitle").contains("Results are provisional as of 9:43 on February 16, 2025"));
for (CompetitorRow row : result) {
if (Util.contains(row.getNames(), "Daniel Kin Chung Chan")) {
assertEquals("HKG 223750", row.getSailID());
assertEquals(25.0, row.getScoreAfterDiscarding(), 0.000000001);
assertEquals(40.0, row.getTotalPointsBeforeDiscarding(), 0.000000001);
}
}
}
@Test
public void testEmptyAndDashedScores() throws IOException {
final InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("ILCA7.html");
SailwaveHtmlParser parser = new SailwaveHtmlParser();
List<CompetitorRow> result = parser.getRegattaResults(resourceAsStream).getCompetitorResults();
assertFalse(result.isEmpty());
assertEquals(117, result.size());
for (CompetitorRow row : result) {
if (Util.contains(row.getNames(), "Nicholas Halliday")) {
assertEquals("HKG 171979", row.getSailID());
assertEquals(7.0, row.getScoreAfterDiscarding(), 0.000000001);
assertEquals(10.0, row.getTotalPointsBeforeDiscarding(), 0.000000001);
assertNull(Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getRank());
assertNull(Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getScore());
assertEquals(false, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).isDiscarded());
assertNull(Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).getRank());
assertEquals((double) 118.00, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).getScore(), 0.000000001);
assertEquals(false, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).isDiscarded());
} else if (Util.contains(row.getNames(), "HAGAN Douglas")) {
assertEquals("AUS 8817", row.getSailID());
assertEquals(235.00, row.getScoreAfterDiscarding(), 0.000000001);
assertEquals(235.00, row.getTotalPointsBeforeDiscarding(), 0.000000001);
assertNull(Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getRank());
assertEquals("DNF", Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getMaxPointsReason());
assertEquals((double) 117.00, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getScore(), 0.000000001);
assertEquals(false, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).isDiscarded());
assertNull(Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).getRank());
assertEquals("DNF", Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).getMaxPointsReason());
assertEquals((double) 118.00, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).getScore(), 0.000000001);
assertEquals(false, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).isDiscarded());
}
}
}
@Test
public void testGetCompetitorRows505() throws IOException {
SailwaveHtmlParser parser = new SailwaveHtmlParser();
final InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("29er.html");
List<CompetitorRow> result = parser.getRegattaResults(resourceAsStream).getCompetitorResults();
assertFalse(result.isEmpty());
assertEquals(75, result.size());
for (CompetitorRow row : result) {
if (Util.contains(row.getNames(), "HOLZAPFEL Alexander")) {
assertEquals("GER 8975", row.getSailID());
assertEquals(60.00, row.getScoreAfterDiscarding(), 0.000000001);
assertEquals(74.00, row.getTotalPointsBeforeDiscarding(), 0.000000001);
assertEquals((int) 11, (int) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getRank());
assertEquals((double) 11, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getScore(), 0.000000001);
assertEquals(false, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).isDiscarded());
} else if (Util.contains(row.getNames(), "BART Cedric")) {
assertEquals("SUI 8543", row.getSailID());
assertEquals(55.00, row.getScoreAfterDiscarding(), 0.000000001);
assertEquals(74.00, row.getTotalPointsBeforeDiscarding(), 0.000000001);
assertEquals((int) 2, (int) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 2).getRank());
assertEquals((double) 2, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 2).getScore(), 0.000000001);
assertEquals(false, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 2).isDiscarded());
assertEquals((int) 19, (int) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 3).getRank());
assertEquals((double) 19, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 3).getScore(), 0.000000001);
assertEquals(true, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 3).isDiscarded());
} else if (Util.contains(row.getNames(), "LEWNS Chris")) {
assertEquals("GBR 9057", row.getSailID());
assertEquals(64.00, row.getScoreAfterDiscarding(), 0.000000001);
assertEquals(140.00, row.getTotalPointsBeforeDiscarding(), 0.000000001);
assertNull(Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 7).getRank());
assertEquals("DNF", Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 7).getMaxPointsReason());
assertEquals((double) 76, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 7).getScore(), 0.000000001);
assertEquals(true, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 7).isDiscarded());
}
}
}
@Test
public void testGetCompetitorRows29er() throws IOException {
SailwaveHtmlParser parser = new SailwaveHtmlParser();
final InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("29er.html");
List<CompetitorRow> result = parser.getRegattaResults(resourceAsStream).getCompetitorResults();
assertFalse(result.isEmpty());
assertEquals(62, result.size());
for (CompetitorRow row : result) {
if (Util.contains(row.getNames(), "HOLSTE Kim (M1993)")) {
assertEquals("GER 1864", row.getSailID());
assertEquals(58.00, row.getScoreAfterDiscarding(), 0.000000001);
assertEquals(169.00, row.getTotalPointsBeforeDiscarding(), 0.000000001);
assertEquals((int) 25, (int) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getRank());
assertEquals((double) 25, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).getScore(), 0.000000001);
assertEquals(false, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 0).isDiscarded());
assertEquals((int) 38, (int) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).getRank());
assertEquals((double) 38, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).getScore(), 0.000000001);
assertEquals(true, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 1).isDiscarded());
assertNull(Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 6).getRank());
assertEquals("DSQ", Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 6).getMaxPointsReason());
assertEquals((double) 63, (double) Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 6).getScore(), 0.000000001);
assertEquals(true, Util.get(row.getRankAndMaxPointsReasonAndPointsAndDiscarded(), 6).isDiscarded());
}
}
}
}