UNPKG

@seasketch/geoprocessing

Version:

Geoprocessing and reporting framework for SeaSketch 2.0

111 lines 4.59 kB
import { classifyZone, rbcsConstants, classifyMPA } from "./rbcs.js"; const gearTypes = rbcsConstants.GEAR_TYPES; const aquaculture = rbcsConstants.AQUACULTURE_AND_BOTTOM_EXPLOITATION; const anchoring = rbcsConstants.BOATING_AND_ANCHORING; describe("rbcs", () => { test("rbcs - No-take/No-go", () => { expect(classifyZone([], aquaculture.NOT_ALLOWED, anchoring.NOT_ALLOWED)).toBe(1); }); test("rbcs - No-take/Regulated access", () => { expect(classifyZone([], aquaculture.NOT_ALLOWED, anchoring.FULLY_REGULATED)).toBe(2); }); test("rbcs - No-take/Unregulated access", () => { expect(classifyZone([], aquaculture.NOT_ALLOWED, anchoring.UNREGULATED)).toBe(3); }); test("rbcs - Highly regulated extraction", () => { expect(classifyZone([gearTypes.SPEARFISHING, gearTypes.LINES], aquaculture.NOT_ALLOWED, anchoring.FULLY_REGULATED)).toBe(4); }); test("rbcs - Moderately regulated extraction", () => { expect(classifyZone([gearTypes.SPEARFISHING, gearTypes.LINES, gearTypes.FISH_TRAPS], aquaculture.NOT_ALLOWED, anchoring.FULLY_REGULATED)).toBe(5); }); test("rbcs - Weakly regulated extraction", () => { expect(classifyZone([gearTypes.SPEARFISHING, gearTypes.LINES], aquaculture.NO_RESTRICTIONS, anchoring.FULLY_REGULATED)).toBe(6); }); test("rbcs - Very weakly regulated extraction", () => { expect(classifyZone([ gearTypes.BEACH_SEINES, gearTypes.CAST_NETS, gearTypes.DREDGES, gearTypes.DRIFT_NETS, gearTypes.FISH_TRAPS, gearTypes.FIXED_FISH_TRAPS, gearTypes.GILLNETS, gearTypes.HAND_DREDGES, gearTypes.HAND_HARVESTING, gearTypes.INTERTIDAL_HAND_CAPTURES, gearTypes.LINES, gearTypes.LONGLINES_BOTTOM, gearTypes.LONGLINES_PELAGIC, gearTypes.PURSE_SEINING_BOTTOM, gearTypes.PURSE_SEINING_PELAGIC, gearTypes.SPEARFISHING, ], aquaculture.NO_RESTRICTIONS, anchoring.FULLY_REGULATED)).toBe(7); }); test("rbcs - Unregulated extraction", () => { expect(classifyZone([ gearTypes.BEACH_SEINES, gearTypes.CAST_NETS, gearTypes.DREDGES, gearTypes.DRIFT_NETS, gearTypes.FISH_TRAPS, gearTypes.FIXED_FISH_TRAPS, gearTypes.GILLNETS, gearTypes.HAND_DREDGES, gearTypes.HAND_HARVESTING, gearTypes.INTERTIDAL_HAND_CAPTURES, gearTypes.LINES, gearTypes.LONGLINES_BOTTOM, gearTypes.LONGLINES_PELAGIC, gearTypes.PURSE_SEINING_BOTTOM, gearTypes.PURSE_SEINING_PELAGIC, gearTypes.SPEARFISHING, gearTypes.SURROUNDING_NETS, gearTypes.TRAMMEL_NETS, gearTypes.TRAPS, gearTypes.TRAWL_BOTTOM, gearTypes.TRAWL_PELAGIC, ], aquaculture.NO_RESTRICTIONS, anchoring.FULLY_REGULATED)).toBe(8); }); test("rbcs - Classify MPA", () => { const zone1 = [ [ gearTypes.BEACH_SEINES, gearTypes.CAST_NETS, gearTypes.DREDGES, gearTypes.DRIFT_NETS, gearTypes.FISH_TRAPS, gearTypes.FIXED_FISH_TRAPS, gearTypes.GILLNETS, gearTypes.HAND_DREDGES, gearTypes.HAND_HARVESTING, gearTypes.INTERTIDAL_HAND_CAPTURES, gearTypes.LINES, gearTypes.LONGLINES_BOTTOM, gearTypes.LONGLINES_PELAGIC, gearTypes.PURSE_SEINING_BOTTOM, gearTypes.PURSE_SEINING_PELAGIC, gearTypes.SPEARFISHING, gearTypes.SURROUNDING_NETS, gearTypes.TRAMMEL_NETS, gearTypes.TRAPS, gearTypes.TRAWL_BOTTOM, gearTypes.TRAWL_PELAGIC, ], aquaculture.NO_RESTRICTIONS, anchoring.FULLY_REGULATED, 2, ]; const zone2 = [ [gearTypes.SPEARFISHING, gearTypes.LINES], aquaculture.NOT_ALLOWED, anchoring.FULLY_REGULATED, 8, ]; const { scores, index, indexLabel } = classifyMPA([zone1, zone2]); expect(scores[0]).toBe(8); expect(scores[1]).toBe(4); expect(Math.round(index * 10) / 10).toBe(4.8); expect(indexLabel).toBe("Highly Protected Area"); }); }); //# sourceMappingURL=rbcs.test.js.map