initial version

This commit is contained in:
2025-05-01 00:46:36 +02:00
parent c40d790bd0
commit ab36746c6b
15 changed files with 40107 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="Test">
<trk>
<name>Test Route with Uneven Effort</name>
<trkseg>
<!-- Day 1: Relatively flat -->
<trkpt lat="59.0" lon="18.0"><ele>10</ele></trkpt>
<trkpt lat="59.1" lon="18.1"><ele>20</ele></trkpt>
<trkpt lat="59.2" lon="18.2"><ele>30</ele></trkpt>
<trkpt lat="59.3" lon="18.3"><ele>40</ele></trkpt>
<trkpt lat="59.4" lon="18.4"><ele>50</ele></trkpt>
<trkpt lat="59.5" lon="18.5"><ele>60</ele></trkpt>
<trkpt lat="59.6" lon="18.6"><ele>70</ele></trkpt>
<trkpt lat="59.7" lon="18.7"><ele>80</ele></trkpt>
<trkpt lat="59.8" lon="18.8"><ele>90</ele></trkpt>
<trkpt lat="59.9" lon="18.9"><ele>100</ele></trkpt>
<!-- Day 2: Some hills -->
<trkpt lat="60.0" lon="19.0"><ele>120</ele></trkpt>
<trkpt lat="60.1" lon="19.1"><ele>150</ele></trkpt>
<trkpt lat="60.2" lon="19.2"><ele>180</ele></trkpt>
<trkpt lat="60.3" lon="19.3"><ele>200</ele></trkpt>
<trkpt lat="60.4" lon="19.4"><ele>220</ele></trkpt>
<trkpt lat="60.5" lon="19.5"><ele>240</ele></trkpt>
<trkpt lat="60.6" lon="19.6"><ele>260</ele></trkpt>
<trkpt lat="60.7" lon="19.7"><ele>280</ele></trkpt>
<trkpt lat="60.8" lon="19.8"><ele>300</ele></trkpt>
<trkpt lat="60.9" lon="19.9"><ele>320</ele></trkpt>
<!-- Day 3: Moderate hills -->
<trkpt lat="61.0" lon="20.0"><ele>340</ele></trkpt>
<trkpt lat="61.1" lon="20.1"><ele>360</ele></trkpt>
<trkpt lat="61.2" lon="20.2"><ele>380</ele></trkpt>
<trkpt lat="61.3" lon="20.3"><ele>400</ele></trkpt>
<trkpt lat="61.4" lon="20.4"><ele>420</ele></trkpt>
<trkpt lat="61.5" lon="20.5"><ele>440</ele></trkpt>
<trkpt lat="61.6" lon="20.6"><ele>460</ele></trkpt>
<trkpt lat="61.7" lon="20.7"><ele>480</ele></trkpt>
<trkpt lat="61.8" lon="20.8"><ele>500</ele></trkpt>
<trkpt lat="61.9" lon="20.9"><ele>520</ele></trkpt>
<!-- Day 4: Steeper hills -->
<trkpt lat="62.0" lon="21.0"><ele>550</ele></trkpt>
<trkpt lat="62.1" lon="21.1"><ele>600</ele></trkpt>
<trkpt lat="62.2" lon="21.2"><ele>650</ele></trkpt>
<trkpt lat="62.3" lon="21.3"><ele>700</ele></trkpt>
<trkpt lat="62.4" lon="21.4"><ele>750</ele></trkpt>
<trkpt lat="62.5" lon="21.5"><ele>800</ele></trkpt>
<trkpt lat="62.6" lon="21.6"><ele>850</ele></trkpt>
<trkpt lat="62.7" lon="21.7"><ele>900</ele></trkpt>
<trkpt lat="62.8" lon="21.8"><ele>950</ele></trkpt>
<trkpt lat="62.9" lon="21.9"><ele>1000</ele></trkpt>
<!-- Day 5: Very steep section -->
<trkpt lat="63.0" lon="22.0"><ele>1050</ele></trkpt>
<trkpt lat="63.1" lon="22.1"><ele>1150</ele></trkpt>
<trkpt lat="63.2" lon="22.2"><ele>1250</ele></trkpt>
<trkpt lat="63.3" lon="22.3"><ele>1350</ele></trkpt>
<trkpt lat="63.4" lon="22.4"><ele>1450</ele></trkpt>
<trkpt lat="63.5" lon="22.5"><ele>1550</ele></trkpt>
<trkpt lat="63.6" lon="22.6"><ele>1650</ele></trkpt>
<trkpt lat="63.7" lon="22.7"><ele>1750</ele></trkpt>
<trkpt lat="63.8" lon="22.8"><ele>1850</ele></trkpt>
<trkpt lat="63.9" lon="22.9"><ele>1950</ele></trkpt>
<!-- Day 6: Extremely steep section -->
<trkpt lat="64.0" lon="23.0"><ele>2050</ele></trkpt>
<trkpt lat="64.1" lon="23.1"><ele>2200</ele></trkpt>
<trkpt lat="64.2" lon="23.2"><ele>2350</ele></trkpt>
<trkpt lat="64.3" lon="23.3"><ele>2500</ele></trkpt>
<trkpt lat="64.4" lon="23.4"><ele>2650</ele></trkpt>
<trkpt lat="64.5" lon="23.5"><ele>2800</ele></trkpt>
<trkpt lat="64.6" lon="23.6"><ele>2950</ele></trkpt>
<trkpt lat="64.7" lon="23.7"><ele>3100</ele></trkpt>
<trkpt lat="64.8" lon="23.8"><ele>3250</ele></trkpt>
<trkpt lat="64.9" lon="23.9"><ele>3400</ele></trkpt>
</trkseg>
</trk>
</gpx>

36065
tests/gpx/very_long_route.gpx Normal file

File diff suppressed because it is too large Load Diff

35
tests/test_forced_stop.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
cd "$(dirname "$0")/.."
# Create a test GPX file with a simple route
cat > test_route.gpx << EOF
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="Test">
<trk>
<name>Test Route</name>
<trkseg>
<trkpt lat="59.0" lon="18.0"><ele>10</ele></trkpt>
<trkpt lat="59.1" lon="18.1"><ele>20</ele></trkpt>
<trkpt lat="59.2" lon="18.2"><ele>30</ele></trkpt>
<trkpt lat="59.3" lon="18.3"><ele>40</ele></trkpt>
<trkpt lat="59.4" lon="18.4"><ele>50</ele></trkpt>
<trkpt lat="59.5" lon="18.5"><ele>60</ele></trkpt>
<trkpt lat="59.6" lon="18.6"><ele>70</ele></trkpt>
<trkpt lat="59.7" lon="18.7"><ele>80</ele></trkpt>
<trkpt lat="59.8" lon="18.8"><ele>90</ele></trkpt>
<trkpt lat="59.9" lon="18.9"><ele>100</ele></trkpt>
</trkseg>
</trk>
</gpx>
EOF
# Run the bicycle planner with a 1-night forced stop
echo "Testing with 1-night forced stop at 59.5,18.5"
go run main.go --input="test_route.gpx" --days=5 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000 --multiStop="59.5,18.5:1"
# The number of segments is now shown in the output
echo "Check the output above for the number of segments created"
# Clean up
rm test_route.gpx

35
tests/test_multi_night_stop.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
cd "$(dirname "$0")/.."
# Create a test GPX file with a simple route
cat > test_route.gpx << EOF
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="Test">
<trk>
<name>Test Route</name>
<trkseg>
<trkpt lat="59.0" lon="18.0"><ele>10</ele></trkpt>
<trkpt lat="59.1" lon="18.1"><ele>20</ele></trkpt>
<trkpt lat="59.2" lon="18.2"><ele>30</ele></trkpt>
<trkpt lat="59.3" lon="18.3"><ele>40</ele></trkpt>
<trkpt lat="59.4" lon="18.4"><ele>50</ele></trkpt>
<trkpt lat="59.5" lon="18.5"><ele>60</ele></trkpt>
<trkpt lat="59.6" lon="18.6"><ele>70</ele></trkpt>
<trkpt lat="59.7" lon="18.7"><ele>80</ele></trkpt>
<trkpt lat="59.8" lon="18.8"><ele>90</ele></trkpt>
<trkpt lat="59.9" lon="18.9"><ele>100</ele></trkpt>
</trkseg>
</trk>
</gpx>
EOF
# Run the bicycle planner with a 2-night forced stop
echo "Testing with 2-night forced stop at 59.5,18.5"
go run main.go --input="test_route.gpx" --days=6 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000 --multiStop="59.5,18.5:2"
# The number of segments is now shown in the output
echo "Check the output above for the number of segments created"
# Clean up
rm test_route.gpx

37
tests/test_town_avoidance.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
cd "$(dirname "$0")/.."
# Create a test GPX file with a simple route
cat > test_route.gpx << EOF
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="Test">
<trk>
<name>Test Route</name>
<trkseg>
<trkpt lat="59.0" lon="18.0"><ele>10</ele></trkpt>
<trkpt lat="59.1" lon="18.1"><ele>20</ele></trkpt>
<trkpt lat="59.2" lon="18.2"><ele>30</ele></trkpt>
<trkpt lat="59.3" lon="18.3"><ele>40</ele></trkpt>
<trkpt lat="59.4" lon="18.4"><ele>50</ele></trkpt>
<trkpt lat="59.5" lon="18.5"><ele>60</ele></trkpt>
<trkpt lat="59.6" lon="18.6"><ele>70</ele></trkpt>
<trkpt lat="59.7" lon="18.7"><ele>80</ele></trkpt>
<trkpt lat="59.8" lon="18.8"><ele>90</ele></trkpt>
<trkpt lat="59.9" lon="18.9"><ele>100</ele></trkpt>
</trkseg>
</trk>
</gpx>
EOF
# Run the bicycle planner with debug output to see town avoidance in action
echo "Testing town avoidance feature with performance improvements"
echo "Running first time (no cache)..."
time go run main.go --input="test_route.gpx" --days=5 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000
echo ""
echo "Running second time (with cache)..."
time go run main.go --input="test_route.gpx" --days=5 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000
# Clean up
rm test_route.gpx

6
tests/test_uneven_effort.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
# Test script for uneven effort distribution
echo "Testing uneven effort distribution..."
cd "$(dirname "$0")/.."
go run main.go -input tests/gpx/test_uneven_effort.gpx -days 12 -elevFactor 4.0

View File

@@ -0,0 +1,8 @@
#!/bin/bash
# Test script for uneven effort distribution with forced stops
echo "Testing uneven effort distribution with forced stops..."
cd "$(dirname "$0")/.."
# Run the bicycle planner with the test GPX file and forced stops
go run main.go -input tests/gpx/test_uneven_effort.gpx -days 12 -elevFactor 4.0 -multiStop="60.5,19.5:1;62.5,21.5:2;64.5,23.5:1"

View File

@@ -0,0 +1,9 @@
#!/bin/bash
# Test script for the issue with uneven effort distribution
echo "Testing issue with uneven effort distribution..."
cd "$(dirname "$0")/.."
# Run the bicycle planner with the specified parameters and debug logging
# Filter the output to only show the relevant parts
go run main.go -input tests/gpx/very_long_route.gpx -days 12 -forestRadius 5 -resupplyRadius 5000 -multiStop "59.126854,11.380377:1;59.92199,10.744629:2"

View File

@@ -0,0 +1,9 @@
#!/bin/bash
# Test script for the issue with uneven effort distribution
echo "Testing issue with uneven effort distribution..."
cd "$(dirname "$0")/.."
# Run the bicycle planner with the specified parameters and debug logging
# Filter the output to only show the relevant parts
go run main.go -input tests/gpx/very_long_route.gpx -days 14 -forestRadius 5 -resupplyRadius 5000 -multiStop "59.126854,11.380377:1;59.92199,10.744629:2"