mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			2671 lines
		
	
	
		
			61 KiB
		
	
	
	
		
			YAML
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			2671 lines
		
	
	
		
			61 KiB
		
	
	
	
		
			YAML
		
	
	
		
			Executable File
		
	
	
	
	
# See ../README.md for a description of the file format
 | 
						|
 | 
						|
tests:
 | 
						|
 | 
						|
  - algorithm: native:projectpointcartesian
 | 
						|
    name: Project points Cartesian
 | 
						|
    params:
 | 
						|
      BEARING: 90.0
 | 
						|
      DISTANCE: 1.0
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/projected_points.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:projectpointcartesian
 | 
						|
    name: Project multipoints Cartesian
 | 
						|
    params:
 | 
						|
      BEARING: -90.0
 | 
						|
      DISTANCE: 0.5
 | 
						|
      INPUT:
 | 
						|
        name: multipoints.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/projected_multipoints.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:removeduplicatevertices
 | 
						|
    name: Remove duplicate vertices from lines
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/line_duplicate_nodes.gml
 | 
						|
        type: vector
 | 
						|
      TOLERANCE: 1.0e-06
 | 
						|
      USE_Z_VALUE: false
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/removed_duplicated_nodes_line.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:removeduplicatevertices
 | 
						|
    name: Remove duplicate vertices from all parts
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/multi_polygons_with_duplicate_nodes_per_part.gml
 | 
						|
        type: vector
 | 
						|
      TOLERANCE: 0.001
 | 
						|
      USE_Z_VALUE: false
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/multi_polygons_without_duplicate_nodes.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:removeduplicatevertices
 | 
						|
    name: Remove duplicate vertices from all interior rings
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/polygons_with_duplicate_nodes_in_several_holes.gml
 | 
						|
        type: vector
 | 
						|
      TOLERANCE: 0.001
 | 
						|
      USE_Z_VALUE: false
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/polygons_without_duplicate_nodes_in_holes.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:keepnbiggestparts
 | 
						|
    name: Keep N biggest parts
 | 
						|
    params:
 | 
						|
      PARTS: 1
 | 
						|
      POLYGONS:
 | 
						|
        name: multipolys.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/biggest_parts.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:multiringconstantbuffer
 | 
						|
    name: Multi-ring buffer with points
 | 
						|
    params:
 | 
						|
      DISTANCE: 0.05
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
      RINGS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/multiring_buffer.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:multiringconstantbuffer
 | 
						|
    name: Multi-ring negative buffer with polygons
 | 
						|
    params:
 | 
						|
      DISTANCE: -0.05
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml
 | 
						|
        type: vector
 | 
						|
      RINGS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/multiring_negative_buffer.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:segmentizebymaxangle
 | 
						|
    name: Segmentize by angle
 | 
						|
    params:
 | 
						|
      ANGLE: 20.0
 | 
						|
      INPUT:
 | 
						|
        name: custom/circular_strings.gpkg|layername=circular_strings
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/segmentize_by_angle.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:segmentizebymaxdistance
 | 
						|
    name: Segmentize by distance
 | 
						|
    params:
 | 
						|
      DISTANCE: 0.2
 | 
						|
      INPUT:
 | 
						|
        name: custom/circular_strings.gpkg|layername=circular_strings
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/segmentize_by_distance.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rotatefeatures
 | 
						|
    name: Rotate around centroid
 | 
						|
    params:
 | 
						|
      ANGLE: 25.0
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/rotate_around_centroid.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rotatefeatures
 | 
						|
    name: Rotate around point
 | 
						|
    params:
 | 
						|
      ANCHOR: 2.3,3 [EPSG:4326]
 | 
						|
      ANGLE: 25.0
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/rotate_around_point.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:importphotos
 | 
						|
    name: Import photos
 | 
						|
    params:
 | 
						|
      FOLDER:
 | 
						|
        name: custom/photos
 | 
						|
        type: file
 | 
						|
      RECURSIVE: false
 | 
						|
    results:
 | 
						|
      INVALID:
 | 
						|
        name: expected/import_photos_invalid.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            photo: skip
 | 
						|
            directory: skip
 | 
						|
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/import_photos.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            photo: skip
 | 
						|
            directory: skip
 | 
						|
            timestamp:
 | 
						|
              cast: str
 | 
						|
 | 
						|
  - algorithm: qgis:concavehull
 | 
						|
    name: Concave Hull - Points (0.3)
 | 
						|
    params:
 | 
						|
      ALPHA: 0.3
 | 
						|
      HOLES: true
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
      NO_MULTIGEOMETRY: false
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/concave_hull_points_03.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:concavehull
 | 
						|
    name: Concave Hull - Points (0.7)
 | 
						|
    params:
 | 
						|
      ALPHA: 0.7
 | 
						|
      HOLES: true
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
      NO_MULTIGEOMETRY: false
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/concave_hull_points_07.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:knearestconcavehull
 | 
						|
    name: K-nearest Neighbor Concave Hull - Points (k=7)
 | 
						|
    params:
 | 
						|
      KNEIGHBORS: 7
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/knearest_concave_hull_points_7.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:knearestconcavehull
 | 
						|
    name: K-nearest Neighbor Concave Hull - Group by field
 | 
						|
    params:
 | 
						|
      FIELD: id2
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
      KNEIGHBORS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/knearest_concave_hull_points_id2.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:knearestconcavehull
 | 
						|
    name: K-nearest Neighbor Concave Hull - Lines (k=3)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml
 | 
						|
        type: vector
 | 
						|
      KNEIGHBORS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/knearest_concave_hull_lines.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:knearestconcavehull
 | 
						|
    name: K-nearest Neighbor Concave Hull - Polys (k=3)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml
 | 
						|
        type: vector
 | 
						|
      KNEIGHBORS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/knearest_concave_hull_polys.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:knearestconcavehull
 | 
						|
    name: K-nearest Neighbor Concave Hull - MultiPoints (k=3)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: multipoints.gml
 | 
						|
        type: vector
 | 
						|
      KNEIGHBORS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/knearest_concave_hull_multipoints.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:knearestconcavehull
 | 
						|
    name: K-nearest Neighbor Concave Hull - Duplicate Points
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/points_duplicate.gml
 | 
						|
        type: vector
 | 
						|
      KNEIGHBORS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/failure.gml
 | 
						|
        type: vector
 | 
						|
    expectedException: true
 | 
						|
 | 
						|
  - algorithm: native:swapxy
 | 
						|
    name: Swap XY coordinates
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/swap_xy.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: model:filtertest
 | 
						|
    name: Test (model:filtertest)
 | 
						|
    params:
 | 
						|
      layer:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      native:filter_1:OUTPUT_small:
 | 
						|
        name: expected/filter_points_small.gml
 | 
						|
        type: vector
 | 
						|
      native:filter_1:OUTPUT_big:
 | 
						|
        name: expected/filter_points_big.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:intersection
 | 
						|
    name: Test Intersection (basic)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/intersection1.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:intersection
 | 
						|
    name: Test Intersection (geom types)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay3_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay3_b.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/intersection3.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:intersection
 | 
						|
    name: Test Intersection (custom prefix)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY_FIELDS_PREFIX: pre_
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/intersection_prefix.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, pre_id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:wedgebuffers
 | 
						|
    name: Wedge buffers
 | 
						|
    params:
 | 
						|
      AZIMUTH: 90.0
 | 
						|
      INNER_RADIUS: 0.5
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
      OUTER_RADIUS: 1.0
 | 
						|
      WIDTH: 45.0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/wedge_buffers.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:difference
 | 
						|
    name: Test Difference A - B (basic)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/difference1_a_b.gml
 | 
						|
        type: vector
 | 
						|
        pk: id_a
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:difference
 | 
						|
    name: Test Difference B - A (basic)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/difference1_b_a.gml
 | 
						|
        type: vector
 | 
						|
        pk: id_b
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:symmetricaldifference
 | 
						|
    name: Test Symmetrical Difference A - B (basic)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/symmetrical_difference1_a_b.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:symmetricaldifference
 | 
						|
    name: Test Symmetrical Difference B - A (basic)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/symmetrical_difference1_b_a.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:symmetricaldifference
 | 
						|
    name: Test Symmetrical Difference B - A (custom prefix)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY_FIELDS_PREFIX: pre_
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/symmetrical_difference_prefix.gml
 | 
						|
        type: vector
 | 
						|
        pk: [pre_id_a, id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:union
 | 
						|
    name: Test Union of single layer
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay0.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/union0.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          unordered: true
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:union
 | 
						|
    name: Test Union (basic)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/union1.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:union
 | 
						|
    name: Test Union (custom prefix)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay1_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay1_b.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY_FIELDS_PREFIX: pre_
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/union_prefix.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, pre_id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:union
 | 
						|
    name: Test Union (geom types)
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay3_a.geojson
 | 
						|
        type: vector
 | 
						|
      OVERLAY:
 | 
						|
        name: custom/overlay3_b.geojson
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/union3.gml
 | 
						|
        type: vector
 | 
						|
        pk: [id_a, id_b]
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:taperedbuffer
 | 
						|
    name: Tapered buffers (lines)
 | 
						|
    params:
 | 
						|
      END_WIDTH: 0.8
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml
 | 
						|
        type: vector
 | 
						|
      SEGMENTS: 3
 | 
						|
      START_WIDTH: 0.4
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/tapered_buffer_line.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          geometry:
 | 
						|
            topo_equal_check: True
 | 
						|
 | 
						|
  - algorithm: native:taperedbuffer
 | 
						|
    name: Tapered buffers (multiline)
 | 
						|
    params:
 | 
						|
      END_WIDTH: 0.8
 | 
						|
      INPUT:
 | 
						|
        name: multilines.gml
 | 
						|
        type: vector
 | 
						|
      SEGMENTS: 3
 | 
						|
      START_WIDTH: 0.4
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name:
 | 
						|
        - expected/tapered_buffer_multiline.gml
 | 
						|
        - expected/tapered_buffer_multilinev2.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          geometry:
 | 
						|
            topo_equal_check: True
 | 
						|
 | 
						|
 | 
						|
  - algorithm: native:bufferbym
 | 
						|
    name: Variable width buffer by m
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_m.shp
 | 
						|
        type: vector
 | 
						|
      SEGMENTS: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/variable_width_buffer_by_m.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          geometry:
 | 
						|
            topo_equal_check: True
 | 
						|
 | 
						|
  - algorithm: native:reclassifybytable
 | 
						|
    name: Reclassify by table
 | 
						|
    params:
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      NODATA_FOR_MISSING: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      RANGE_BOUNDARIES: 0
 | 
						|
      RASTER_BAND: 1
 | 
						|
      TABLE:
 | 
						|
      - 1
 | 
						|
      - 850
 | 
						|
      - 3
 | 
						|
      - 850
 | 
						|
      - 1000
 | 
						|
      - 4
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:reclassifybytable
 | 
						|
    name: Reclassify by table min <=
 | 
						|
    params:
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      NODATA_FOR_MISSING: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      RANGE_BOUNDARIES: 1
 | 
						|
      RASTER_BAND: 1
 | 
						|
      TABLE:
 | 
						|
      - 1
 | 
						|
      - 843
 | 
						|
      - 3
 | 
						|
      - 843
 | 
						|
      - 1000
 | 
						|
      - 4
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: f055b582e4e5abcfa9cce6a69ceb7fac54791ad0d980003f1a23f4b1
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:reclassifybytable
 | 
						|
    name: Reclassify by table use original
 | 
						|
    params:
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      NODATA_FOR_MISSING: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      RANGE_BOUNDARIES: 0
 | 
						|
      RASTER_BAND: 1
 | 
						|
      TABLE:
 | 
						|
      - 1
 | 
						|
      - 843
 | 
						|
      - 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 4398ddc5d24b3bf968d9a6e0fbd800344b20880a57915bd50a90e1ba
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:reclassifybytable
 | 
						|
    name: Reclassify by table use nodata
 | 
						|
    params:
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      NODATA_FOR_MISSING: true
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      RANGE_BOUNDARIES: 0
 | 
						|
      RASTER_BAND: 1
 | 
						|
      TABLE:
 | 
						|
      - 1
 | 
						|
      - 843
 | 
						|
      - 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: cea558f7e99a0564fef92a96cd8d6b59707d019f1751cb600ab00850
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:reclassifybytable
 | 
						|
    name: Reclassify by table infinite ranges
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      NODATA_FOR_MISSING: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      RANGE_BOUNDARIES: 0
 | 
						|
      RASTER_BAND: 1
 | 
						|
      TABLE:
 | 
						|
      - ''
 | 
						|
      - 850
 | 
						|
      - 3
 | 
						|
      - 850
 | 
						|
      - ''
 | 
						|
      - 4
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:reclassifybylayer
 | 
						|
    name: Reclassify by layer
 | 
						|
    params:
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      INPUT_TABLE:
 | 
						|
        name: custom/reclassify_layer.gml
 | 
						|
        type: vector
 | 
						|
      MAX_FIELD: max
 | 
						|
      MIN_FIELD: min
 | 
						|
      NODATA_FOR_MISSING: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      RANGE_BOUNDARIES: 0
 | 
						|
      RASTER_BAND: 1
 | 
						|
      VALUE_FIELD: value
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:reclassifybylayer
 | 
						|
    name: Reclassify by layer with nulls
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      INPUT_TABLE:
 | 
						|
        name: custom/reclassify_layer_nulls.gml
 | 
						|
        type: vector
 | 
						|
      MAX_FIELD: max
 | 
						|
      MIN_FIELD: min
 | 
						|
      NODATA_FOR_MISSING: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      RANGE_BOUNDARIES: 0
 | 
						|
      RASTER_BAND: 1
 | 
						|
      VALUE_FIELD: value
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:pixelstopolygons
 | 
						|
    name: Pixels to polygons
 | 
						|
    params:
 | 
						|
      FIELD_NAME: pix_val
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      RASTER_BAND: 1
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/vectorize.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:pixelstopoints
 | 
						|
    name: Pixels to points
 | 
						|
    params:
 | 
						|
      FIELD_NAME: VALUE
 | 
						|
      INPUT_RASTER:
 | 
						|
        name: raster.tif
 | 
						|
        type: raster
 | 
						|
      RASTER_BAND: 1
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/pixels_to_points.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:kmeansclustering
 | 
						|
    name: K means, points, 3 clusters
 | 
						|
    params:
 | 
						|
      CLUSTERS: 3
 | 
						|
      FIELD_NAME: CLUSTER_ID
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/kmeans_points_3.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:kmeansclustering
 | 
						|
    name: K means, points, 5 clusters
 | 
						|
    params:
 | 
						|
      CLUSTERS: 5
 | 
						|
      FIELD_NAME: CLUSTER_ID5
 | 
						|
      SIZE_FIELD_NAME: CLUSTER_SIZE5
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/kmeans_points_5.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:kmeansclustering
 | 
						|
    name: K means, lines
 | 
						|
    params:
 | 
						|
      CLUSTERS: 2
 | 
						|
      FIELD_NAME: CLUSTER_ID
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/kmeans_lines.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:kmeansclustering
 | 
						|
    name: K means, polys
 | 
						|
    params:
 | 
						|
      CLUSTERS: 2
 | 
						|
      FIELD_NAME: CLUSTER_ID
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/kmeans_polys.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
 | 
						|
  - algorithm: native:dbscanclustering
 | 
						|
    name: DBScan 5/3
 | 
						|
    params:
 | 
						|
      DBSCAN*: false
 | 
						|
      EPS: 3.0
 | 
						|
      FIELD_NAME: CLUSTER_ID
 | 
						|
      INPUT:
 | 
						|
        name: custom/points_weighted.gml
 | 
						|
        type: vector
 | 
						|
      MIN_SIZE: 5
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/dbscan_5_2.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:dbscanclustering
 | 
						|
    name: DBScan* 5/3
 | 
						|
    params:
 | 
						|
      DBSCAN*: true
 | 
						|
      EPS: 3.0
 | 
						|
      FIELD_NAME: CLUSTER_ID
 | 
						|
      INPUT:
 | 
						|
        name: custom/points_weighted.gml
 | 
						|
        type: vector
 | 
						|
      MIN_SIZE: 5
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/dbscan_star_5_2.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:dbscanclustering
 | 
						|
    name: DBScan no clusters
 | 
						|
    params:
 | 
						|
      DBSCAN*: false
 | 
						|
      EPS: 1.0
 | 
						|
      FIELD_NAME: CLUSTER_ID
 | 
						|
      INPUT:
 | 
						|
        name: custom/points_weighted.gml
 | 
						|
        type: vector
 | 
						|
      MIN_SIZE: 5
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/dbscan_no_clusters.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:dbscanclustering
 | 
						|
    name: DBScan multiple clusters
 | 
						|
    params:
 | 
						|
      DBSCAN*: false
 | 
						|
      EPS: 2.0
 | 
						|
      FIELD_NAME: CLUSTER_ID
 | 
						|
      INPUT:
 | 
						|
        name: custom/points_weighted.gml
 | 
						|
        type: vector
 | 
						|
      MIN_SIZE: 3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/dbscan_multiple_clusters.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: qgis:rastersampling
 | 
						|
    name: Single band raster
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: SAMPLE_
 | 
						|
      INPUT:
 | 
						|
        name: custom/sampling_points.gml
 | 
						|
        type: vector
 | 
						|
      RASTERCOPY:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/sampling_raster.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            fid: skip
 | 
						|
 | 
						|
  - algorithm: native:filterverticesbym
 | 
						|
    name: Filter by m no max
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_m.shp
 | 
						|
        type: vector
 | 
						|
      MIN: 0.6
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/filter_by_m_no_max.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterverticesbym
 | 
						|
    name: Filter by m no min
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_m.shp
 | 
						|
        type: vector
 | 
						|
      MAX: 0.6
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/filter_by_m_no_min.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterverticesbym
 | 
						|
    name: Filter by m
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_m.shp
 | 
						|
        type: vector
 | 
						|
      MAX: 0.7
 | 
						|
      MIN: 0.4
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/filter_by_m.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterverticesbyz
 | 
						|
    name: Filter by z no max
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_z.shp
 | 
						|
        type: vector
 | 
						|
      MIN: 0.6
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/filter_by_z_no_max.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterverticesbyz
 | 
						|
    name: Filter by z no min
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_z.shp
 | 
						|
        type: vector
 | 
						|
      MAX: 0.6
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/filter_by_z_no_min.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterverticesbyz
 | 
						|
    name: Filter by z
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_z.shp
 | 
						|
        type: vector
 | 
						|
      MAX: 0.7
 | 
						|
      MIN: 0.4
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/filter_by_z.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:arraytranslatedfeatures
 | 
						|
    name: Array of point features
 | 
						|
    params:
 | 
						|
      COUNT: 3
 | 
						|
      DELTA_M: -0.4
 | 
						|
      DELTA_X: 0.1
 | 
						|
      DELTA_Y: -0.2
 | 
						|
      DELTA_Z: 0.3
 | 
						|
      INPUT:
 | 
						|
        name: points.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/feature_array.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:arrayoffsetlines
 | 
						|
    name: Array of offset (parallel) lines
 | 
						|
    params:
 | 
						|
      COUNT: 3
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml
 | 
						|
        type: vector
 | 
						|
      JOIN_STYLE: 1
 | 
						|
      MITER_LIMIT: 2.0
 | 
						|
      OFFSET: -0.2
 | 
						|
      SEGMENTS: 8
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/create_parallel_lines.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:setzfromraster
 | 
						|
    name: Drape points to z
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/sampling_points.gml
 | 
						|
        type: vector
 | 
						|
      NODATA: 0.0
 | 
						|
      RASTER:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      SCALE: 1.2
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/drape_points.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:setmfromraster
 | 
						|
    name: Drape points to m
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/sampling_points.gml
 | 
						|
        type: vector
 | 
						|
      NODATA: 0.0
 | 
						|
      RASTER:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      SCALE: 1.2
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/drape_points_m.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:setzfromraster
 | 
						|
    name: Drape lines to z
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/dem_lines.shp
 | 
						|
        type: vector
 | 
						|
      NODATA: -9999.0
 | 
						|
      RASTER:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      SCALE: 1.0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/drape_lines.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:setmfromraster
 | 
						|
    name: Drape lines to m
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/dem_lines.shp
 | 
						|
        type: vector
 | 
						|
      NODATA: -9999.0
 | 
						|
      RASTER:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      SCALE: 1.0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/drape_lines_m.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:linesubstring
 | 
						|
    name: Line substrings
 | 
						|
    params:
 | 
						|
      END_DISTANCE: 0.8
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml
 | 
						|
        type: vector
 | 
						|
      START_DISTANCE: 0.2
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/line_substring.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:interpolatepoint
 | 
						|
    name: Interpolate points (line)
 | 
						|
    params:
 | 
						|
      DISTANCE: 1.0
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/interpolate_point_lines.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:interpolatepoint
 | 
						|
    name: Interpolate points (polygons)
 | 
						|
    params:
 | 
						|
      DISTANCE: 2.0
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/interpolate_point_polys.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:mergevectorlayers
 | 
						|
    name: Merge vector layers with conflicting feature ids
 | 
						|
    params:
 | 
						|
      LAYERS:
 | 
						|
        params:
 | 
						|
        - name: custom/pol.gpkg|layername=pol1
 | 
						|
          type: vector
 | 
						|
        - name: custom/pol.gpkg|layername=pol2
 | 
						|
          type: vector
 | 
						|
        - name: custom/pol.gpkg|layername=pol3
 | 
						|
          type: vector
 | 
						|
        type: multi
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        # If you ever run into this test producing Polygons instead of MultiPolygons as output
 | 
						|
        # that is totally expected and you are invited to replace the file merged_pol.gpkg with
 | 
						|
        # a single polygon version.
 | 
						|
        name: ogr:dbname='expected/merged_pol.gpkg' table="output" (geom) sql=
 | 
						|
        uri: expected/merged_pol.gpkg|layername=merged_pol
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            path: skip
 | 
						|
 | 
						|
  - algorithm: native:removeduplicatesbyattribute
 | 
						|
    name: Remove dupes by attribute 1
 | 
						|
    params:
 | 
						|
      FIELDS:
 | 
						|
      - num_field1
 | 
						|
      INPUT:
 | 
						|
        name: custom/duplicate_attributes.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/remove_duplicates1.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:removeduplicatesbyattribute
 | 
						|
    name: Remove dupes by attribute 2
 | 
						|
    params:
 | 
						|
      FIELDS:
 | 
						|
      - num_field2
 | 
						|
      INPUT:
 | 
						|
        name: custom/duplicate_attributes.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/remove_duplicates2.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:removeduplicatesbyattribute
 | 
						|
    name: Remove dupes by attribute 3
 | 
						|
    params:
 | 
						|
      FIELDS:
 | 
						|
      - num_field2
 | 
						|
      - text_field
 | 
						|
      INPUT:
 | 
						|
        name: custom/duplicate_attributes.gml
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      DUPLICATES:
 | 
						|
        name: expected/remove_duplicates_dupes.gml
 | 
						|
        type: vector
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/remove_duplicates3.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:forcerhr
 | 
						|
    name: Force right-hand-rule polys
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/force_rhr_polys.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:forcerhr
 | 
						|
    name: Force right-hand-rule multipolys
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: multipolys.gml|layername=multipolys
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/force_rhr_multipolys.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractzvalues
 | 
						|
    name: Extract z, first value only
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: z_
 | 
						|
      INPUT:
 | 
						|
        name: lines_z.shp
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_z_first.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractzvalues
 | 
						|
    name: Extract z, all stats
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: zs_
 | 
						|
      INPUT:
 | 
						|
        name: lines_z.shp
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
      - 1
 | 
						|
      - 2
 | 
						|
      - 3
 | 
						|
      - 4
 | 
						|
      - 5
 | 
						|
      - 6
 | 
						|
      - 7
 | 
						|
      - 8
 | 
						|
      - 9
 | 
						|
      - 10
 | 
						|
      - 11
 | 
						|
      - 12
 | 
						|
      - 13
 | 
						|
      - 14
 | 
						|
      - 15
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_z_all.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractzvalues
 | 
						|
    name: Extract z, points
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: z_
 | 
						|
      INPUT:
 | 
						|
        name: custom/pointszm.shp
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
      - 1
 | 
						|
      - 2
 | 
						|
      - 3
 | 
						|
      - 4
 | 
						|
      - 5
 | 
						|
      - 6
 | 
						|
      - 7
 | 
						|
      - 8
 | 
						|
      - 9
 | 
						|
      - 10
 | 
						|
      - 11
 | 
						|
      - 12
 | 
						|
      - 13
 | 
						|
      - 14
 | 
						|
      - 15
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_z_points.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractzvalues
 | 
						|
    name: Extract z, no z values
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: z_
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml|layername=lines
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_z_none.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractmvalues
 | 
						|
    name: Extract m first only
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: m_
 | 
						|
      INPUT:
 | 
						|
        name: lines_m.shp
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_m_first.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractmvalues
 | 
						|
    name: Extract m, all stats
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: ms_
 | 
						|
      INPUT:
 | 
						|
        name: lines_m.shp
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
      - 1
 | 
						|
      - 2
 | 
						|
      - 3
 | 
						|
      - 4
 | 
						|
      - 5
 | 
						|
      - 6
 | 
						|
      - 7
 | 
						|
      - 8
 | 
						|
      - 9
 | 
						|
      - 10
 | 
						|
      - 11
 | 
						|
      - 12
 | 
						|
      - 13
 | 
						|
      - 14
 | 
						|
      - 15
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_m_all.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractmvalues
 | 
						|
    name: Extract m, points
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: mp_
 | 
						|
      INPUT:
 | 
						|
        name: custom/pointszm.shp
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
      - 1
 | 
						|
      - 2
 | 
						|
      - 3
 | 
						|
      - 4
 | 
						|
      - 5
 | 
						|
      - 6
 | 
						|
      - 7
 | 
						|
      - 8
 | 
						|
      - 9
 | 
						|
      - 10
 | 
						|
      - 11
 | 
						|
      - 12
 | 
						|
      - 13
 | 
						|
      - 14
 | 
						|
      - 15
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_m_points.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:extractmvalues
 | 
						|
    name: Extract m, no m values present
 | 
						|
    params:
 | 
						|
      COLUMN_PREFIX: m_
 | 
						|
      INPUT:
 | 
						|
        name: points.gml|layername=points
 | 
						|
        type: vector
 | 
						|
      SUMMARIES:
 | 
						|
      - 0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/extract_m_none.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:splitlinesbylength
 | 
						|
    name: Split multilines by length
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: multilines.gml|layername=multilines
 | 
						|
        type: vector
 | 
						|
      LENGTH: 1.1
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/split_multiline_by_length.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:splitlinesbylength
 | 
						|
    name: Split lines by length
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml|layername=lines
 | 
						|
        type: vector
 | 
						|
      LENGTH: 2.2
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/split_lines_by_length.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:splitlinesbylength
 | 
						|
    name: Split linesz by length
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines_z.shp
 | 
						|
        type: vector
 | 
						|
      LENGTH: 3.1
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/split_linez_by_length.shp
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:deleteduplicategeometries
 | 
						|
    name: Delete Duplicates with null geometries
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml|layername=lines
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/delete_duplicates_with_nulls.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rasterlayerzonalstats
 | 
						|
    name: Raster layer zonal stats, same CRS
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      ZONES:
 | 
						|
        name: custom/dem_zones.tif
 | 
						|
        type: raster
 | 
						|
      ZONES_BAND: 1
 | 
						|
    results:
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/raster_zonal_stats.csv
 | 
						|
        type: vector
 | 
						|
        pk:
 | 
						|
        - zone
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            sum:
 | 
						|
              cast: float
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:rasterlayerzonalstats
 | 
						|
    name: Raster layer zonal stats, reprojected
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      ZONES:
 | 
						|
        name: custom/dem_zones_crs.tif
 | 
						|
        type: raster
 | 
						|
      ZONES_BAND: 1
 | 
						|
    results:
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/raster_zonal_stats_reproj.csv
 | 
						|
        type: vector
 | 
						|
        pk:
 | 
						|
        - zone
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            sum:
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:rasterlayerzonalstats
 | 
						|
    name: Raster layer zonal stats, zones ref
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      REF_LAYER: 1
 | 
						|
      ZONES:
 | 
						|
        name: custom/dem_zones.tif
 | 
						|
        type: raster
 | 
						|
      ZONES_BAND: 1
 | 
						|
    results:
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/raster_zonal_stats_zone_ref.csv
 | 
						|
        type: vector
 | 
						|
        pk:
 | 
						|
        - zone
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            sum:
 | 
						|
              cast: float
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:rasterlayerzonalstats
 | 
						|
    name: Raster layer zonal stats reprojected, zones ref
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      REF_LAYER: 1
 | 
						|
      ZONES:
 | 
						|
        name: custom/dem_zones_crs.tif
 | 
						|
        type: raster
 | 
						|
      ZONES_BAND: 1
 | 
						|
    results:
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/raster_zonal_stats_zone_crs_ref.csv
 | 
						|
        type: vector
 | 
						|
        pk:
 | 
						|
        - zone
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            sum:
 | 
						|
              cast: float
 | 
						|
              precision: -1
 | 
						|
            mean:
 | 
						|
              cast: float
 | 
						|
              precision: 3
 | 
						|
 | 
						|
  - algorithm: native:antimeridiansplit
 | 
						|
    name: Antimeridian split, lines
 | 
						|
    ellipsoid: GRS80
 | 
						|
    project_crs: EPSG:4326
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/antimeridian_lines.gml|layername=antimeridian_lines
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/antimeridian_lines_split.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          geometry:
 | 
						|
            precision: 4
 | 
						|
        pk:
 | 
						|
        - pk
 | 
						|
 | 
						|
  - algorithm: native:antimeridiansplit
 | 
						|
    name: Antimeridian split, multilines
 | 
						|
    ellipsoid: GRS80
 | 
						|
    project_crs: EPSG:4326
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/antimeridian_multilines.gml|layername=antimeridian_multilines
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/antimeridian_multilines_split.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          geometry:
 | 
						|
            precision: 4
 | 
						|
        pk:
 | 
						|
        - pk
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume above
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 100.0
 | 
						|
      METHOD: 0
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_above.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: 0.064805'
 | 
						|
          - 'Pixel count: 95901'
 | 
						|
          - 'Area: 0.000959'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_above.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume Below
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 100.0
 | 
						|
      METHOD: 1
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_below.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: -0.00322225'
 | 
						|
          - 'Pixel count: 34600'
 | 
						|
          - 'Area: 0.00034599'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_below.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume subtract below
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 100.0
 | 
						|
      METHOD: 2
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_subtract.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: 0.0615830'
 | 
						|
          - 'Pixel count: 130550'
 | 
						|
          - 'Area: 0.00130549'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_subtract.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume add below
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 100.0
 | 
						|
      METHOD: 3
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_add.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: 0.06802752'
 | 
						|
          - 'Pixel count: 130550'
 | 
						|
          - 'Area: 0.00130549'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_add.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume above (meters)
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/dem_crs.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 150.0
 | 
						|
      METHOD: 0
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_above_crs.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: 413784918\.'
 | 
						|
          - 'Pixel count: 64692'
 | 
						|
          - 'Area: 11497732\.'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_above_crs.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            volume:
 | 
						|
              cast: float
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume below (meters)
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/dem_crs.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 150.0
 | 
						|
      METHOD: 1
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_below_crs.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: -479651884\.'
 | 
						|
          - 'Pixel count: 65660'
 | 
						|
          - 'Area: 11669775\.'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_below_crs.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            volume:
 | 
						|
              cast: float
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume subtract below (meters)
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/dem_crs.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 150.0
 | 
						|
      METHOD: 2
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_subtract_crs.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: -65866966\.'
 | 
						|
          - 'Pixel count: 130550'
 | 
						|
          - 'Area: 23202698\.'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_subtract_crs.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume add below (meters)
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/dem_crs.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 150.0
 | 
						|
      METHOD: 3
 | 
						|
    results:
 | 
						|
      OUTPUT_HTML_FILE:
 | 
						|
        name: expected/surface_vol_add_crs.html
 | 
						|
        type: regex
 | 
						|
        rules:
 | 
						|
          - 'Volume: 893436802\.'
 | 
						|
          - 'Pixel count: 130550'
 | 
						|
          - 'Area: 23202698\.'
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_add_crs.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            volume:
 | 
						|
              cast: float
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:rastersurfacevolume
 | 
						|
    name: Surface volume with gaps
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: custom/dem_gaps.tif
 | 
						|
        type: raster
 | 
						|
      LEVEL: 101.0
 | 
						|
      METHOD: 0
 | 
						|
    results:
 | 
						|
      OUTPUT_TABLE:
 | 
						|
        name: expected/surface_vol_gaps.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:dissolve
 | 
						|
    name: Test dissolve with consecutive lines
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/consecutivelines.gml|layername=consecutivelines
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/dissolved_consecutive_lines.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rasterbooleanand
 | 
						|
    name: Boolean AND, nodata
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean1.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 96799caed50406d3e31e05a182a6872231f800f01dea126aa9fbafdd
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterbooleanand
 | 
						|
    name: Boolean AND, nodata as false
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: true
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean1.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: bf225380193226957a2210dc45a9c10dffac5dadcee932459e243456
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterbooleanand
 | 
						|
    name: Boolean AND, resampling
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3_resample.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: false
 | 
						|
      NO_DATA: -999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean3.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 9c7f3070ad53b98ad9f42c3f758546268000043e990fbb38495d3c86
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterbooleanand
 | 
						|
    name: Boolean AND resample, nodata as false
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3_resample.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: true
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean3.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 1de336faba85a6b51684bda85b4f3b954b7e54486632352e05c9fab3
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterbooleanand
 | 
						|
    name: Boolean AND, reference layer
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean3_resample.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: eb41f92cb1198f1e4bed71e4a78d4fe2d3b35462a3949588d85cc818
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterlogicalor
 | 
						|
    name: Boolean OR
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean1.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: d9fe5b26cf76ff58674fd6adeb1933f4b5c9b39ca6f57b876455f167
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterlogicalor
 | 
						|
    name: Boolean OR, nodata as false
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: true
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean1.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: de7a8dabce3872e6ef1acd4821f7f550ac41a43d5b5914ab4474cec1
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterlogicalor
 | 
						|
    name: Boolean OR resample
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3_resample.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean3.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 2cd2f073cf337264140c1e5e3f162d5d134a731a094f1e1109e3ce12
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterlogicalor
 | 
						|
    name: Boolean OR resample, nodata as false
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3_resample.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: true
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean3.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: d344a9306b7453c3faaef4558a9187da5525b0c90c6a04502bf15f1b
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rasterlogicalor
 | 
						|
    name: Boolean OR, reference layer
 | 
						|
    params:
 | 
						|
      DATA_TYPE: 5
 | 
						|
      INPUT:
 | 
						|
        params:
 | 
						|
        - name: custom/raster_boolean1.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean2.tif
 | 
						|
          type: raster
 | 
						|
        - name: custom/raster_boolean3.tif
 | 
						|
          type: raster
 | 
						|
        type: multi
 | 
						|
      NODATA_AS_FALSE: false
 | 
						|
      NO_DATA: -9999.0
 | 
						|
      REF_LAYER:
 | 
						|
        name: custom/raster_boolean3_resample.tif
 | 
						|
        type: raster
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 4e395a2151aba7558efedd43a33c85bbaae451ebcccef9a6dac86de4
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:addxyfields
 | 
						|
    name: Add XY 4326
 | 
						|
    params:
 | 
						|
      CRS: EPSG:4326
 | 
						|
      INPUT:
 | 
						|
        name: points.gml|layername=points
 | 
						|
        type: vector
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/add_xy_4326.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:addxyfields
 | 
						|
    name: Add XY 3785
 | 
						|
    params:
 | 
						|
      CRS: EPSG:3785
 | 
						|
      INPUT:
 | 
						|
        name: points.gml|layername=points
 | 
						|
        type: vector
 | 
						|
      PREFIX: p_
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/add_xy_3857.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            p_x:
 | 
						|
              precision: 6
 | 
						|
            p_y:
 | 
						|
              precision: 6
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Join by nearest polys to points
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_polys.gml|layername=snap_polys
 | 
						|
        type: vector
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/nearest_polys_to_points.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Nearest polys to points, with options
 | 
						|
    params:
 | 
						|
      FIELDS_TO_COPY:
 | 
						|
      - fid
 | 
						|
      INPUT:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_polys.gml|layername=snap_polys
 | 
						|
        type: vector
 | 
						|
      MAX_DISTANCE: 3.5
 | 
						|
      NEIGHBORS: 2
 | 
						|
      PREFIX: j_
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/nearest_polys_to_points_options.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Nearest lines to polys
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: snap_polys.gml|layername=snap_polys
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_lines.gml|layername=snap_lines
 | 
						|
        type: vector
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/nearest_lines_to_polys.gml
 | 
						|
        type: vector
 | 
						|
        pk: [fid,fid_2]
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Nearest lines to polys, max distance 0
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: snap_polys.gml|layername=snap_polys
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_lines.gml|layername=snap_lines
 | 
						|
        type: vector
 | 
						|
      MAX_DISTANCE: 0.0
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/nearest_lines_to_polys_max_distance_0.gml
 | 
						|
        type: vector
 | 
						|
        pk: [fid,fid_2]
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Nearest points to lines, with max distance
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: snap_lines.gml|layername=snap_lines
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      MAX_DISTANCE: 1.5
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/nearest_points_to_lines.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Nearest points to lines, reprojected
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/snap_lines_3857.gml|layername=snap_lines_3857
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/nearest_points_to_reproj_lines.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            distance:
 | 
						|
              precision: 5
 | 
						|
            feature_x:
 | 
						|
              precision: 5
 | 
						|
            nearest_x:
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Nearest lines to points, reprojected
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: custom/snap_lines_3857.gml|layername=snap_lines_3857
 | 
						|
        type: vector
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/nearest_lines_to_points_reprojected.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            distance:
 | 
						|
              precision: 5
 | 
						|
            nearest_y:
 | 
						|
              precision: 5
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Join to nearest, self join
 | 
						|
    params:
 | 
						|
      DISCARD_NONMATCHING: false
 | 
						|
      INPUT:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/join_to_nearest_self.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Join to nearest 2, self join
 | 
						|
    params:
 | 
						|
      DISCARD_NONMATCHING: false
 | 
						|
      INPUT:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      NEIGHBORS: 2
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/join_to_nearest_self_2.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Join to nearest, discard no matching
 | 
						|
    params:
 | 
						|
      DISCARD_NONMATCHING: true
 | 
						|
      INPUT:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_lines.gml|layername=snap_lines
 | 
						|
        type: vector
 | 
						|
      MAX_DISTANCE: 1.0
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/join_points_to_layers_discard.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:joinbynearest
 | 
						|
    name: Join by nearest, no matching sink
 | 
						|
    params:
 | 
						|
      DISCARD_NONMATCHING: true
 | 
						|
      INPUT:
 | 
						|
        name: snap_points.gml|layername=snap_points
 | 
						|
        type: vector
 | 
						|
      INPUT_2:
 | 
						|
        name: snap_lines.gml|layername=snap_lines
 | 
						|
        type: vector
 | 
						|
      MAX_DISTANCE: 1.0
 | 
						|
      NEIGHBORS: 1
 | 
						|
      PREFIX: ''
 | 
						|
    results:
 | 
						|
      NON_MATCHING:
 | 
						|
        name: expected/join_to_nearest_no_matches.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - name: Generate XYZ tiles (Directory)
 | 
						|
    algorithm: qgis:tilesxyzdirectory
 | 
						|
    project: ../../../../../tests/testdata/xyztiles.qgs
 | 
						|
    project_crs: EPSG:3857
 | 
						|
    params:
 | 
						|
      EXTENT: -12535000,-9883000,3360000,5349000 [EPSG:3857]
 | 
						|
      ZOOM_MIN: 1
 | 
						|
      ZOOM_MAX: 3
 | 
						|
      TILE_FORMAT: 0     # png
 | 
						|
      TMS_CONVENTION: false
 | 
						|
      TILE_WIDTH: 256
 | 
						|
      TILE_HEIGHT: 256
 | 
						|
 | 
						|
    results:
 | 
						|
      OUTPUT_DIRECTORY:
 | 
						|
        type: directory
 | 
						|
        name: expected/xyztiles
 | 
						|
 | 
						|
  - algorithm: native:writevectortiles_xyz
 | 
						|
    name: Generate vector tiles (Directory)
 | 
						|
    params:
 | 
						|
      LAYERS:
 | 
						|
        type: vrtlayers
 | 
						|
        params:
 | 
						|
        - layer: ../../../../../tests/testdata/lines.shp
 | 
						|
        - layer: ../../../../../tests/testdata/points.shp
 | 
						|
        - layer: ../../../../../tests/testdata/polys.shp
 | 
						|
      MAX_ZOOM: 3
 | 
						|
      MIN_ZOOM: 1
 | 
						|
      XYZ_TEMPLATE: '{z}/{x}/{y}.pbf'
 | 
						|
    results:
 | 
						|
      OUTPUT_DIRECTORY:
 | 
						|
        type: directory
 | 
						|
        name: expected/xyztiles_vector
 | 
						|
 | 
						|
  - algorithm: native:calculatevectoroverlaps
 | 
						|
    name: Overlap analysis 1
 | 
						|
    ellipsoid: GRS80
 | 
						|
    project_crs: EPSG:4326
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay0.geojson
 | 
						|
        type: vector
 | 
						|
      LAYERS:
 | 
						|
        params:
 | 
						|
        - name: custom/overlay1_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay1_b.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay2_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay2_b.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay3_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay3_b.geojson
 | 
						|
          type: vector
 | 
						|
        type: multi
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/overlap_analysis_1.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:calculatevectoroverlaps
 | 
						|
    name: Overlap analysis reprojected
 | 
						|
    ellipsoid: GRS80
 | 
						|
    project_crs: EPSG:4326
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay0_4326.gml|layername=overlay0_4326
 | 
						|
        type: vector
 | 
						|
      LAYERS:
 | 
						|
        params:
 | 
						|
        - name: custom/overlay1_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay1_b.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay2_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay2_b.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay3_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay3_b.geojson
 | 
						|
          type: vector
 | 
						|
        type: multi
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/overlap_analysis_4326.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            custom_overlay2_a.geojson_area:
 | 
						|
              precision: 13
 | 
						|
            custom_overlay2_a.geojson_pc:
 | 
						|
              precision: 13
 | 
						|
            custom_overlay2_b.geojson_area:
 | 
						|
              precision: 8
 | 
						|
            custom_overlay2_b.geojson_pc:
 | 
						|
              precision: 7
 | 
						|
 | 
						|
  - algorithm: native:calculatevectoroverlaps
 | 
						|
    name: Overlap analysis 3, reordered inputs
 | 
						|
    ellipsoid: GRS80
 | 
						|
    project_crs: EPSG:4326
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: custom/overlay0.geojson
 | 
						|
        type: vector
 | 
						|
      LAYERS:
 | 
						|
        params:
 | 
						|
        - name: custom/overlay3_b.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay1_b.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay2_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay2_b.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay1_a.geojson
 | 
						|
          type: vector
 | 
						|
        - name: custom/overlay3_a.geojson
 | 
						|
          type: vector
 | 
						|
        type: multi
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/overlap_analysis_3.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            custom_overlay1_a.geojson_area:
 | 
						|
              precision: 8
 | 
						|
            custom_overlay1_a.geojson_pc:
 | 
						|
              precision: 3
 | 
						|
            custom_overlay1_b.geojson_area:
 | 
						|
              precision: 8
 | 
						|
            custom_overlay1_b.geojson_pc:
 | 
						|
              precision: 3
 | 
						|
            custom_overlay2_a.geojson_area:
 | 
						|
              precision: 8
 | 
						|
            custom_overlay2_a.geojson_pc:
 | 
						|
              precision: 3
 | 
						|
            custom_overlay2_b.geojson_area:
 | 
						|
              precision: 8
 | 
						|
            custom_overlay2_b.geojson_pc:
 | 
						|
              precision: 3
 | 
						|
            custom_overlay3_a.geojson_area:
 | 
						|
              precision: 8
 | 
						|
            custom_overlay3_a.geojson_pc:
 | 
						|
              precision: 3
 | 
						|
            custom_overlay3_b.geojson_area:
 | 
						|
              precision: 8
 | 
						|
            custom_overlay3_b.geojson_pc:
 | 
						|
              precision: 3
 | 
						|
 | 
						|
  - algorithm: native:splitfeaturesbycharacter
 | 
						|
    name: Split features by character
 | 
						|
    params:
 | 
						|
      CHAR: B
 | 
						|
      FIELD: val
 | 
						|
      INPUT:
 | 
						|
        name: custom/split_points.shp|layername=split_points
 | 
						|
        type: vector
 | 
						|
      REGEX: false
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/split_by_char_a.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:splitfeaturesbycharacter
 | 
						|
    name: Split features by character 2
 | 
						|
    params:
 | 
						|
      CHAR: aB
 | 
						|
      FIELD: val
 | 
						|
      INPUT:
 | 
						|
        name: custom/split_points.shp|layername=split_points
 | 
						|
        type: vector
 | 
						|
      REGEX: false
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/split_by_char_b.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:splitfeaturesbycharacter
 | 
						|
    name: Split features by character regex
 | 
						|
    params:
 | 
						|
      CHAR: \d
 | 
						|
      FIELD: val2
 | 
						|
      INPUT:
 | 
						|
        name: custom/split_points.shp|layername=split_points
 | 
						|
        type: vector
 | 
						|
      REGEX: true
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/split_by_char_regex.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:affinetransform
 | 
						|
    name: Affine transform
 | 
						|
    params:
 | 
						|
      DELTA_M: 4.0
 | 
						|
      DELTA_X: 1.0
 | 
						|
      DELTA_Y: 2.0
 | 
						|
      DELTA_Z: 3.0
 | 
						|
      INPUT:
 | 
						|
        name: custom/pointszm.shp
 | 
						|
        type: vector
 | 
						|
      ROTATION_Z: 45.0
 | 
						|
      SCALE_M: 1.4
 | 
						|
      SCALE_X: 1.1
 | 
						|
      SCALE_Y: 1.2
 | 
						|
      SCALE_Z: 1.3
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/affine_transform.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:renametablefield
 | 
						|
    name: Rename table field
 | 
						|
    params:
 | 
						|
      FIELD: id2
 | 
						|
      INPUT:
 | 
						|
        name: points.gml|layername=points
 | 
						|
        type: vector
 | 
						|
      NEW_NAME: id_renamed
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/renamed_field.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterbygeometry
 | 
						|
    name: Filter by geometry type polygon input
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      LINES:
 | 
						|
        name: expected/filter_geom_polys_line.gml
 | 
						|
        type: vector
 | 
						|
      NO_GEOMETRY:
 | 
						|
        name: expected/filter_geom_polys_null.gml
 | 
						|
        type: vector
 | 
						|
      POINTS:
 | 
						|
        name: expected/filter_geom_polys_point.gml
 | 
						|
        type: vector
 | 
						|
      POLYGONS:
 | 
						|
        name: expected/filter_geom_polys_poly.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterbygeometry
 | 
						|
    name: Filter by geometry type point input
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: points.gml|layername=points
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      LINES:
 | 
						|
        name: expected/filter_geom_points_line.gml
 | 
						|
        type: vector
 | 
						|
      NO_GEOMETRY:
 | 
						|
        name: expected/filter_geom_points_null.gml
 | 
						|
        type: vector
 | 
						|
      POINTS:
 | 
						|
        name: expected/filter_geom_points_point.gml
 | 
						|
        type: vector
 | 
						|
      POLYGONS:
 | 
						|
        name: expected/filter_geom_points_poly.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:filterbygeometry
 | 
						|
    name: Filter by geometry type line input
 | 
						|
    params:
 | 
						|
      INPUT:
 | 
						|
        name: lines.gml|layername=lines
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      LINES:
 | 
						|
        name: expected/filter_geom_lines_line.gml
 | 
						|
        type: vector
 | 
						|
      NO_GEOMETRY:
 | 
						|
        name: expected/filter_geom_lines_null.gml
 | 
						|
        type: vector
 | 
						|
      POINTS:
 | 
						|
        name: expected/filter_geom_lines_point.gml
 | 
						|
        type: vector
 | 
						|
      POLYGONS:
 | 
						|
        name: expected/filter_geom_lines_poly.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:rescaleraster
 | 
						|
    name: Rescale raster (original nodata)
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      MAXIMUM: 65535.0
 | 
						|
      MINIMUM: 0.0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 63610fb1f7ec3d6530591b1eb479355b52cedfebf6331cec77f2b35c
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:rescaleraster
 | 
						|
    name: Rescale raster (new nodata)
 | 
						|
    params:
 | 
						|
      BAND: 1
 | 
						|
      INPUT:
 | 
						|
        name: dem.tif
 | 
						|
        type: raster
 | 
						|
      MAXIMUM: 65535.0
 | 
						|
      MINIMUM: 0.0
 | 
						|
      NODATA: -255.0
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        hash: 63610fb1f7ec3d6530591b1eb479355b52cedfebf6331cec77f2b35c
 | 
						|
        type: rasterhash
 | 
						|
 | 
						|
  - algorithm: native:angletonearest
 | 
						|
    name: Align points to nearest line, no max distance
 | 
						|
    params:
 | 
						|
      APPLY_SYMBOLOGY: true
 | 
						|
      FIELD_NAME: rotation
 | 
						|
      INPUT:
 | 
						|
        name: points.gml|layername=points
 | 
						|
        type: vector
 | 
						|
      REFERENCE_LAYER:
 | 
						|
        name: custom/snap_lines_3857.gml|layername=snap_lines_3857
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/rotated_points_no_max.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            rotation:
 | 
						|
              precision: 2
 | 
						|
 | 
						|
  - algorithm: native:angletonearest
 | 
						|
    name: Align points to nearest line, max distance
 | 
						|
    params:
 | 
						|
      APPLY_SYMBOLOGY: true
 | 
						|
      FIELD_NAME: angle
 | 
						|
      INPUT:
 | 
						|
        name: points.gml|layername=points
 | 
						|
        type: vector
 | 
						|
      MAX_DISTANCE: 1.0
 | 
						|
      REFERENCE_LAYER:
 | 
						|
        name: custom/snap_lines_3857.gml|layername=snap_lines_3857
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/rotated_points_max.gml
 | 
						|
        type: vector
 | 
						|
        compare:
 | 
						|
          fields:
 | 
						|
            angle:
 | 
						|
              precision: 2
 | 
						|
 | 
						|
  - algorithm: native:deletecolumn
 | 
						|
    name: Delete one column
 | 
						|
    params:
 | 
						|
      COLUMN:
 | 
						|
      - fid
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/drop_fields_one.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:deletecolumn
 | 
						|
    name: Delete two columns
 | 
						|
    params:
 | 
						|
      COLUMN:
 | 
						|
      - name
 | 
						|
      - floatval
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/delete_columns_two.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:deletecolumn
 | 
						|
    name: Delete three columns
 | 
						|
    params:
 | 
						|
      COLUMN:
 | 
						|
        - fid
 | 
						|
        - intval
 | 
						|
        - doesntexist # should NOT cause algorithm to abort, just a warning -- otherwise we can't make flexible models
 | 
						|
        - floatval
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/delete_columns_three.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:retainfields
 | 
						|
    name: Retain one field
 | 
						|
    params:
 | 
						|
      FIELDS:
 | 
						|
      - name
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/retain_fields_one.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:retainfields
 | 
						|
    name: Retain two fields
 | 
						|
    params:
 | 
						|
      FIELDS:
 | 
						|
      - floatval
 | 
						|
      - name
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/retain_fields_two.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
  - algorithm: native:retainfields
 | 
						|
    name: Retain three fields
 | 
						|
    params:
 | 
						|
      FIELDS:
 | 
						|
      - name
 | 
						|
      - floatval
 | 
						|
      - doesntexist # should NOT cause algorithm to abort, just a warning -- otherwise we can't make flexible models
 | 
						|
      - intval
 | 
						|
      INPUT:
 | 
						|
        name: polys.gml|layername=polys2
 | 
						|
        type: vector
 | 
						|
    results:
 | 
						|
      OUTPUT:
 | 
						|
        name: expected/retain_fields_three.gml
 | 
						|
        type: vector
 | 
						|
 | 
						|
 | 
						|
# See ../README.md for a description of the file format
 |