diff --git a/components/cucumber/src/cucumber/runner.clj b/components/cucumber/src/cucumber/runner.clj index 45dfe7f84..b94c10e35 100644 --- a/components/cucumber/src/cucumber/runner.clj +++ b/components/cucumber/src/cucumber/runner.clj @@ -5,7 +5,9 @@ [tegere.loader :refer [load-feature-files]] [tegere.steps :refer [registry]] [tegere.runner :refer [run]] - [cucumber.webdriver :as w])) + [tegere.query :as query] + [cucumber.webdriver :as w] + )) ;; Debug @@ -32,8 +34,19 @@ (defn run-cucumber-tests - "Runs cucumber tests " - [{:keys [features steps url debug?] :as opts}] + "Runs cucumber tests. + + Options: + :features - Path to feature files directory + :steps - Path to step definitions directory + :url - URL to run tests against + :debug? - Keep browser open after tests (default: false) + :headless? - Run browser in headless mode (default: false) + :query-string - Filter tests by query + :stop - Stop on first failure + :browser - Browser type (default: :chrome) + :browser-path - Path to browser executable" + [{:keys [features steps url debug? headless? query-string stop] :as opts}] (when steps (load-steps! (io/file steps))) @@ -42,7 +55,9 @@ (println [:WEBDRIVER ]driver) (let [results (run (load-feature-files (io/file features)) @registry - {} + (cond-> {} + query-string (assoc ::query/query-tree query-string) + stop (assoc :tegere.runner/stop stop)) {:initial-ctx {:driver driver :url url}})] ;; Do something with output @@ -50,7 +65,7 @@ ;; Quit Driver (when-not debug? (w/quit driver)) - results))) + (:tegere.runner/outcome-summary-report results)))) (comment @@ -74,6 +89,20 @@ :browser-path "/usr/bin/google-chrome" :url "http://localhost:8081/worksheets"}) + ;; Mac - Headless Mode + (run-cucumber-tests {:headless? true + :features "./../../features" + :browser :chrome + :url "http://localhost:8081/worksheets"}) + + ;; Linux - Headless Mode + (run-cucumber-tests {:headless? true + :features "./../../features" + :steps "./../../steps" + :browser :chrome + :browser-path "/usr/bin/google-chrome" + :url "http://localhost:8081/worksheets"}) + (def run-test-10-times (let [results (doall (map (fn [_] (run-cucumber-tests {:debug? true @@ -84,9 +113,9 @@ :url "http://localhost:8081/worksheets"})) (range 10))) failed (apply + (map #(get-in % [:tegere.runner/outcome-summary :tegere.runner/features-failed]) - results)) + results)) passed (apply + (map #(get-in % [:tegere.runner/outcome-summary :tegere.runner/features-passed]) - results))] + results))] (prn "passed: " passed) (prn "failed: " failed))) diff --git a/components/cucumber/src/cucumber/webdriver.clj b/components/cucumber/src/cucumber/webdriver.clj index 474d46b94..63438de11 100644 --- a/components/cucumber/src/cucumber/webdriver.clj +++ b/components/cucumber/src/cucumber/webdriver.clj @@ -68,18 +68,23 @@ (defn chrome-driver "Instatiate a Chrome WebDriver." - [{:keys [browser-path]}] + [{:keys [browser-path headless?]}] (let [options (ChromeOptions.)] (when browser-path (.setBinary options browser-path)) (.addArguments options (into-array - ["start-maximized" ; // open Browser in maximized mode - "disable-infobars" ; // disabling infobars - "--disable-extensions" ; // disabling extensions - "--disable-gpu" ; // applicable to windows os only - "--disable-dev-shm-usage" ; // overcome limited resource problems - "--no-sandbox" ; // Bypass OS security model - "--remote-debugging-port=9222"])) - (System/setProperty "webdriver.chrome.driver" "/usr/local/bin/chromedriver") + (cond-> ["disable-infobars" ; // disabling infobars + "--disable-extensions" ; // disabling extensions + "--disable-gpu" ; // applicable to windows os only + "--disable-dev-shm-usage" ; // overcome limited resource problems + "--no-sandbox" ; // Bypass OS security model + "--remote-debugging-port=9222"] + headless? (concat ["--headless=new" ; // run in headless mode + "start-maximized" + "--window-size=2560,1080"]) ; // set window size for headless + (not headless?) (conj "start-maximized")))) ; // maximize when not headless + (System/setProperty "webdriver.chrome.driver" + (or (System/getenv "CHROMEDRIVER_PATH") + "/usr/local/bin/chromedriver")) (ChromeDriver. options))) (defn firefox-driver diff --git a/deps.edn b/deps.edn index 31d284008..d822eb166 100644 --- a/deps.edn +++ b/deps.edn @@ -4,6 +4,7 @@ {:dev {:extra-paths ["development" "target" + "steps" ;; Components "components/async_utils/src" @@ -37,7 +38,6 @@ "bases/datomic_store/src" "bases/datom_store/src"] - :extra-deps {;; Clojure Deps bk/ring-gzip {:mvn/version "0.3.0"} clj-http/clj-http {:mvn/version "3.10.1"} @@ -66,41 +66,44 @@ tegere/tegere {:mvn/version "0.1.5"} ;; Clojure Common - bidi/bidi {:mvn/version "2.1.6"} - datascript/datascript {:mvn/version "1.5.3"} - cljs-ajax/cljs-ajax {:mvn/version "0.8.4"} - nano-id/nano-id {:mvn/version "1.1.0"} - com.github.rosejn/msgpack-cljc {:mvn/version "2.0.359"} - sig-gis/triangulum {:git/url "https://github.com/sig-gis/triangulum" - :sha "3d41dab63e1bc8ebe046f64db44ae3df986f5bdf"} - org.clojure/data.csv {:mvn/version "1.0.0"} + bidi/bidi {:mvn/version "2.1.6"} + datascript/datascript {:mvn/version "1.5.3"} + cljs-ajax/cljs-ajax {:mvn/version "0.8.4"} + nano-id/nano-id {:mvn/version "1.1.0"} + com.github.rosejn/msgpack-cljc {:mvn/version "2.0.359"} + sig-gis/triangulum {:git/url "https://github.com/sig-gis/triangulum" + :sha "3d41dab63e1bc8ebe046f64db44ae3df986f5bdf"} + org.clojure/data.csv {:mvn/version "1.0.0"} ;; Clojure/Script Deps - com.bhauman/figwheel-main {:mvn/version "0.2.18"} - org.clojure/clojurescript {:mvn/version "1.11.54"} - org.clojure/core.async {:mvn/version "1.2.603"} - binaryage/devtools {:mvn/version "1.0.5"} - re-frisk/re-frisk {:mvn/version "1.6.0"} - com.cognitect/transit-cljs {:mvn/version "0.8.264"} - re-frame/re-frame {:mvn/version "1.3.0-rc3"} - day8.re-frame/http-fx {:mvn/version "0.2.4"} - re-posh/re-posh {:mvn/version "0.3.3"} - reagent/reagent {:mvn/version "0.10.0"} - re-frame-utils/re-frame-utils {:mvn/version "0.1.0"} - cljsjs/vega {:mvn/version "5.25.0-0"} - cljsjs/vega-embed {:mvn/version "6.22.2-0"} - cljsjs/vega-lite {:mvn/version "5.14.1-0"} - day8.re-frame/test {:mvn/version "0.1.5"} - austinbirch/reactive-entity {:mvn/version "0.2.0"} + com.bhauman/figwheel-main {:mvn/version "0.2.18"} + org.clojure/clojurescript {:mvn/version "1.11.54"} + org.clojure/core.async {:mvn/version "1.2.603"} + binaryage/devtools {:mvn/version "1.0.5"} + re-frisk/re-frisk {:mvn/version "1.6.0"} + com.cognitect/transit-cljs {:mvn/version "0.8.264"} + re-frame/re-frame {:mvn/version "1.3.0-rc3"} + day8.re-frame/http-fx {:mvn/version "0.2.4"} + re-posh/re-posh {:mvn/version "0.3.3"} + reagent/reagent {:mvn/version "0.10.0"} + re-frame-utils/re-frame-utils {:mvn/version "0.1.0"} + cljsjs/vega {:mvn/version "5.25.0-0"} + cljsjs/vega-embed {:mvn/version "6.22.2-0"} + cljsjs/vega-lite {:mvn/version "5.14.1-0"} + day8.re-frame/test {:mvn/version "0.1.5"} + austinbirch/reactive-entity {:mvn/version "0.2.0"} ;; Behave CMS - applied-science/js-interop {:mvn/version "0.3.3"} - com.draines/postal {:mvn/version "2.0.3"} - garden/garden {:mvn/version "1.3.10"} - herb/herb {:mvn/version "0.10.0"} - hickory/hickory {:mvn/version "0.7.1"} - markdown-clj/markdown-clj {:mvn/version "1.11.1"} - org.clojure/tools.cli {:mvn/version "1.0.194"}} + applied-science/js-interop {:mvn/version "0.3.3"} + com.draines/postal {:mvn/version "2.0.3"} + garden/garden {:mvn/version "1.3.10"} + herb/herb {:mvn/version "0.10.0"} + hickory/hickory {:mvn/version "0.7.1"} + markdown-clj/markdown-clj {:mvn/version "1.11.1"} + org.clojure/tools.cli {:mvn/version "1.0.194"} + + ;; Testing + org.seleniumhq.selenium/selenium-java {:mvn/version "4.23.0"}} :jvm-opts ["--add-exports=java.base/java.lang=ALL-UNNAMED" "--add-exports=java.desktop/sun.awt=ALL-UNNAMED" diff --git a/development/user.clj b/development/user.clj index 83ad96dce..80a37c0e0 100644 --- a/development/user.clj +++ b/development/user.clj @@ -1,12 +1,41 @@ (ns user) (comment - (require '[behave.server :as server] - '[behave.handlers :refer [vms-sync!]] - '[config.interface :refer [get-config load-config]]) - (server/init-config!) - (server/init-db! (get-config :database :config)) + (require '[cucumber.runner :refer [run-cucumber-tests]]) + + ;; Takes 3 hr to complete + (time + (run-cucumber-tests + {:debug? false + :headless? true + :features "features" + :steps "steps" + :stop true + :browser :chrome + :url "http://localhost:8081/worksheets"})) + + ;; Takes 30 min to complete + (time + (run-cucumber-tests + {:debug? false + :headless? true + :features "features" + :steps "steps" + :stop true + :query-string '(and "core" (not "extended")) + :browser :chrome + :url "http://localhost:8081/worksheets"})) + ) + +(comment + (do + (require '[behave.server :as server] + '[behave.handlers :refer [vms-sync!]] + '[config.interface :refer [get-config load-config]]) + + (server/init-config!) + (server/init-db! (get-config :database :config))) (vms-sync!) @@ -80,11 +109,11 @@ (def module-help-pages (map (partial get-module-help-pages db) modules)) - (def DOCTYPES {:map "" + (def DOCTYPES {:map "" :topic ""}) (defn insert-doctype [doctype xml] - (let [lines (str/split-lines xml) + (let [lines (str/split-lines xml) result (concat (take 1 lines) [(get DOCTYPES doctype)] (drop 1 lines))] (str/join "\n" result))) @@ -93,7 +122,7 @@ (defn generate-snippet [title help-key body-as-hiccup] (let [body (if (empty? body-as-hiccup) nil body-as-hiccup)] - (insert-topic-doctype + (insert-topic-doctype (xml/indent-str (xml/sexp-as-element [:topic {:id title} @@ -133,14 +162,13 @@ [:map (map gen-topic-ref dita-topics)])))) - (gen-ditamap [{:href "Content/Modules/Modules.dita" - :title "Modules" - :topics [{:href "Content/Modules/Surface.dita" - :title "Surface"}]}]) - + (gen-ditamap [{:href "Content/Modules/Modules.dita" + :title "Modules" + :topics [{:href "Content/Modules/Surface.dita" + :title "Surface"}]}]) ;; Markdown to Hiccup - + db ;; Generate DITA Project Layout @@ -163,8 +191,6 @@ ;; - Mortality ;; - Outputs ;; - Inputs - - module-help-pages (map #(let [submodule %] @@ -206,19 +232,39 @@ [snippet-name help-key]))] (spit submodule-topic-file - (generate-topic - (str/replace submodule #" " "_") - submodule - (->snake submodule) - - (concat - '([:h1 submodule]) - (map #(let [[snippet-name help-key] % - ref (str "../../../../Resources/Snippets/Variables/" snippet-name ".dita#" )] - [:p {:conref %}]))) - [] - [:h1 "Hello World"]) - - - ))))))) - ) + (generate-topic + (str/replace submodule #" " "_") + submodule + (->snake submodule) + + (concat + '([:h1 submodule]) + (map #(let [[snippet-name help-key] % + ref (str "../../../../Resources/Snippets/Variables/" snippet-name ".dita#")] + [:p {:conref %}]))) + [] + [:h1 "Hello World"]))))))))) + +;; =========================================================================================================== +;; Test Matrix Generator +;; =========================================================================================================== +;; Generate comprehensive test matrix report for all :group/conditionals in the schema +;; This helps identify which conditionals need Cucumber tests + +(comment + ;; Initialize CMS database first + (require '[behave-cms.server :as cms]) + (cms/init-db!) + + ;; Load test matrix generator + (require '[test-matrix-generator :as tmg] :reload) + + ;; Print quick summary + (tmg/print-summary) + + ;; Generate full test matrix report (Markdown + EDN) + ;; Creates: development/test_matrix_report.md and development/test_matrix_data.edn + (tmg/generate-test-matrix!) + + ;; Generate with custom paths + (tmg/generate-test-matrix! "custom-report.md" "custom-data.edn")) diff --git a/features/contain-input_suppression_estimated-resource-arrival-time-and-duration.feature b/features/contain-input_suppression_estimated-resource-arrival-time-and-duration.feature new file mode 100644 index 000000000..739574692 --- /dev/null +++ b/features/contain-input_suppression_estimated-resource-arrival-time-and-duration.feature @@ -0,0 +1,12 @@ +@core +Feature: Contain & Surface Input - Suppression -> Estimated Resource Arrival Time and Duration + + @core + Scenario: Estimated Resource Arrival Time and Duration is displayed + Given I have started a new Surface & Contain Worksheet in Guided Mode + When these input paths are entered + | submodule | group | value | + | Suppression | Contain Mode | Calculate Minimum Production Rate Only | + Then the following input paths are displayed: + | submodule | group | + | Suppression | Estimated Resource Arrival Time and Duration | diff --git a/features/contain-input_suppression_resources.feature b/features/contain-input_suppression_resources.feature new file mode 100644 index 000000000..1e2bdbd21 --- /dev/null +++ b/features/contain-input_suppression_resources.feature @@ -0,0 +1,12 @@ +@core +Feature: Contain & Surface Input - Suppression -> Resources + + @core + Scenario: Resources is displayed + Given I have started a new Surface & Contain Worksheet in Guided Mode + When these input paths are entered + | submodule | group | value | + | Suppression | Contain Mode | Add Resources | + Then the following input paths are displayed: + | submodule | group | + | Suppression | Resources | \ No newline at end of file diff --git a/features/crown-input_canopy-fuel.feature b/features/crown-input_canopy-fuel.feature new file mode 100644 index 000000000..c9d09b000 --- /dev/null +++ b/features/crown-input_canopy-fuel.feature @@ -0,0 +1,24 @@ +@core +Feature: Crown & Surface Input - Canopy Fuel + + @core + Scenario Outline: Canopy Fuel is displayed + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Canopy Fuel | + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Length-to-Width Ratio | + | Size | Crown - Fire Size | Spread Distance | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | diff --git a/features/crown-input_crown-fire-method.feature b/features/crown-input_crown-fire-method.feature new file mode 100644 index 000000000..9e26daa58 --- /dev/null +++ b/features/crown-input_crown-fire-method.feature @@ -0,0 +1,24 @@ +@core +Feature: Crown & Surface Input - Crown Fire Method + + @core + Scenario Outline: Crown Fire Method is displayed + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Crown Fire Method | + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Length-to-Width Ratio | + | Size | Crown - Fire Size | Spread Distance | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | diff --git a/features/crown-input_foliar-moisture.feature b/features/crown-input_foliar-moisture.feature new file mode 100644 index 000000000..b2a4dcc20 --- /dev/null +++ b/features/crown-input_foliar-moisture.feature @@ -0,0 +1,25 @@ +@core +Feature: Crown & Surface Input - Foliar Moisture + + @core + Scenario Outline: Foliar Moisture is displayed + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Foliar Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Length-to-Width Ratio | + | Size | Crown - Fire Size | Spread Distance | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | \ No newline at end of file diff --git a/features/crown-input_spot.feature b/features/crown-input_spot.feature new file mode 100644 index 000000000..7cd413efb --- /dev/null +++ b/features/crown-input_spot.feature @@ -0,0 +1,15 @@ +@core +Feature: Crown & Surface Input - Spot + + @core + Scenario Outline: Spot is displayed + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Spot | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Spot | Maximum Spotting Distance | Active Crown Fire | + | Spot | Maximum Spotting Distance | Torching Trees | \ No newline at end of file diff --git a/features/crown-input_spot_fire-behavior.feature b/features/crown-input_spot_fire-behavior.feature new file mode 100644 index 000000000..fe9ce1610 --- /dev/null +++ b/features/crown-input_spot_fire-behavior.feature @@ -0,0 +1,17 @@ +@core +Feature: Crown & Surface Input - Spot -> Fire Behavior + + @core + Scenario: Fire Behavior is displayed when Active Crown Fire is selected + Given I have started a new Surface & Crown Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Active Crown Fire | + When these output paths are NOT selected + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Fire Behavior | Fire Behavior | Flame Length | + Then the following input paths are displayed: + | submodule | group | + | Spot | Fire Behavior | \ No newline at end of file diff --git a/features/crown-input_spot_torching-trees.feature b/features/crown-input_spot_torching-trees.feature new file mode 100644 index 000000000..bb9d1e8aa --- /dev/null +++ b/features/crown-input_spot_torching-trees.feature @@ -0,0 +1,12 @@ +@core +Feature: Crown & Surface Input - Spot -> Torching Trees + + @core + Scenario: Torching Trees is displayed when Torching Trees is selected + Given I have started a new Surface & Crown Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Torching Trees | + Then the following input paths are displayed: + | submodule | group | + | Spot | Torching Trees | \ No newline at end of file diff --git a/features/ignite_only.feature b/features/ignite_only.feature deleted file mode 100644 index ed28b160e..000000000 --- a/features/ignite_only.feature +++ /dev/null @@ -1,14 +0,0 @@ -Feature: Ignite Only Worksheets - - Scenario: Fire Behavior Output Selected - Given I have started a Surface Worksheet - When I select these outputs Submodule > Group > Output: - """ - - Fire Behavior > Ignition > Probability of Ignition - """ - Then the following input Submodule > Groups are displayed: - """ - - Fuel Moisture > Moisture Input Mode - - Weather > Air Temperature - - Weather > Fuel Shading From the Sun - """ diff --git a/features/mortality-input_scorch.feature b/features/mortality-input_scorch.feature new file mode 100644 index 000000000..51df4e3d9 --- /dev/null +++ b/features/mortality-input_scorch.feature @@ -0,0 +1,220 @@ +@core +Feature: Mortality & Surface Input - Scorch + + @core + Scenario Outline: Scorch is displayed with these Tree Species + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | + | Scorch | + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + + @extended + Scenario Outline: Scorch is displayed with these Tree Species + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | + | Scorch | + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + + @extended + Scenario Outline: Scorch is displayed with these Tree Species (extended) + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | + | Scorch | + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + + @extended + Scenario Outline: Scorch is displayed with these Tree Species + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | + | Scorch | + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + | Tree Characteristics | Mortality Tree Species | Abies balsamea / ABBA (Balsam fir) | + | Tree Characteristics | Mortality Tree Species | Abies concolor / ABCO (White fir) | + | Tree Characteristics | Mortality Tree Species | Abies grandis / ABGR (Grand fir) | + | Tree Characteristics | Mortality Tree Species | Abies lasiocarpa / ABLA (Subalpine fir) | + | Tree Characteristics | Mortality Tree Species | Abies magnifica / ABMA (Red Fir) | + | Tree Characteristics | Mortality Tree Species | Abies procera / ABPR (Noble Fir) | + | Tree Characteristics | Mortality Tree Species | Acer barbatum / ACBA3 (Southern sugar maple) | + | Tree Characteristics | Mortality Tree Species | Acer macrophyllum / ACMA3 (Bigleaf maple) | + | Tree Characteristics | Mortality Tree Species | Acer negundo / ACNE2 (Boxelder) | + | Tree Characteristics | Mortality Tree Species | Acer nigrum / ACNI5 (Black maple) | + | Tree Characteristics | Mortality Tree Species | Acer pensylvanicum / ACPE (Striped maple) | + | Tree Characteristics | Mortality Tree Species | Acer saccharinum / ACSA2 (Silver maple) | + | Tree Characteristics | Mortality Tree Species | Acer saccharum / ACSA3 (Sugar maple) | + | Tree Characteristics | Mortality Tree Species | Acer spicatum / ACSP2 (Mountain maple) | + | Tree Characteristics | Mortality Tree Species | Aesculus flava / AEFL (Yellow buckeye) | + | Tree Characteristics | Mortality Tree Species | Aesculus glabra / AEGL (Ohio buckeye) | + | Tree Characteristics | Mortality Tree Species | Ailanthus altissima / AIAL (Ailanthus) | + | Tree Characteristics | Mortality Tree Species | Alnus rhombifolia / ALRH2 (White alder) | + | Tree Characteristics | Mortality Tree Species | Alnus rubra / ALRU2 (Red alder) | + | Tree Characteristics | Mortality Tree Species | Amelanchier arborea / AMAR3 (Common serviceberry) | + | Tree Characteristics | Mortality Tree Species | Arbutus menziesii / ARME (Pacific madrone) | + | Tree Characteristics | Mortality Tree Species | Betula alleghaniensis / BEAL2 (Yellow birch) | + | Tree Characteristics | Mortality Tree Species | Betula lenta / BELE (Sweet birch) | + | Tree Characteristics | Mortality Tree Species | Betula nigra / BENI (River Birch) | + | Tree Characteristics | Mortality Tree Species | Betula occidentalis / BEOC2 (Water birch) | + | Tree Characteristics | Mortality Tree Species | Betula papyrifera / BEPA (Paper birch) | + | Tree Characteristics | Mortality Tree Species | Betula species / BETSPP (Birches) | + | Tree Characteristics | Mortality Tree Species | Carya alba / CAAL27 (Mockernut hickory) | + | Tree Characteristics | Mortality Tree Species | Carpinus caroliniana / CACA18 (American hornbeam) | + | Tree Characteristics | Mortality Tree Species | Carya cordiformis / CACOL3 (Bitternut hickory) | + | Tree Characteristics | Mortality Tree Species | Castanea dentata / CADE12 (American chestnut) | + | Tree Characteristics | Mortality Tree Species | Calocedrus decurrens / CADE27 (Incense - cedar) | + | Tree Characteristics | Mortality Tree Species | Carya glabra / CAGL8 (Pignut hickory) | + | Tree Characteristics | Mortality Tree Species | Carya illinoinensis / CAIL2 (Pecan) | + | Tree Characteristics | Mortality Tree Species | Carya laciniosa / CALA21 (Shellbark hickory) | + | Tree Characteristics | Mortality Tree Species | Carya ovata / CAOV2 (Shagbark hickory) | + | Tree Characteristics | Mortality Tree Species | Carya species / CARSPP (Hickories) | + | Tree Characteristics | Mortality Tree Species | Carya texana / CATE9 (Black hickory) | + | Tree Characteristics | Mortality Tree Species | Cercis canadensis / CECA4 (Eastern redbud) | + | Tree Characteristics | Mortality Tree Species | Celtis laevigata / CELA (Sugarberry) | + | Tree Characteristics | Mortality Tree Species | Celtis occidentalis / CEOC (Common hackberry) | + | Tree Characteristics | Mortality Tree Species | Chrysolepis chrysophylla / CHCHC4 (Giant chinkapin) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis lawsoniana / CHLA (PortOrford - cedar) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis nootkatensis / CHNO (Alaska - cedar) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis thyoides / CHTH2 (Atlantic white - cedar) | + | Tree Characteristics | Mortality Tree Species | Cornus nuttallii / CONU4 (Pacific dogwood) | + | Tree Characteristics | Mortality Tree Species | Crataegus species / CRASPP (Hawthorns) | + | Tree Characteristics | Mortality Tree Species | Diospyros virginiana / DIVI5 (Persimmon) | + | Tree Characteristics | Mortality Tree Species | Fagus grandifolia / FAGR (American beech) | + | Tree Characteristics | Mortality Tree Species | Fraxinus americana / FRAM2 (White ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus species / FRASPP (Ashes) | + | Tree Characteristics | Mortality Tree Species | Fraxinus nigra / FRNI (Black ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus pennsylvanica / FRPE (Green ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus profunda / FRPR (Pumpkin ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus quadrangulata / FRQU (Blue ash) | + | Tree Characteristics | Mortality Tree Species | Gleditsia triacanthos / GLTR (Honeylocust) | + | Tree Characteristics | Mortality Tree Species | Gordonia lasianthus / GOLA (Loblolly bay) | + | Tree Characteristics | Mortality Tree Species | Gymnocladus dioicus / GYDI (Kentucky coffeetree) | + | Tree Characteristics | Mortality Tree Species | Halesia species / HALSPP (Silverbells) | + | Tree Characteristics | Mortality Tree Species | Ilex opaca / ILOP (American holly) | + | Tree Characteristics | Mortality Tree Species | Juglans cinerea / JUCI (Butternut) | + | Tree Characteristics | Mortality Tree Species | Juglans nigra / JUNI (Black walnut) | + | Tree Characteristics | Mortality Tree Species | Juniperus occidentalis / JUOC (Western juniper) | + | Tree Characteristics | Mortality Tree Species | Juniperus virginiana / JUVI (Eastern redcedar) | + | Tree Characteristics | Mortality Tree Species | Larix laricina / LALA (Tamarack) | + | Tree Characteristics | Mortality Tree Species | Larix lyallii / LALY (Subalpine Larch) | + | Tree Characteristics | Mortality Tree Species | Larix occidentalis / LAOC (Western Larch) | + | Tree Characteristics | Mortality Tree Species | Lithocarpus densiflorus / LIDE3 (Tanoak) | + | Tree Characteristics | Mortality Tree Species | Liquidambar styraciflua / LIST2 (Sweetgum) | + | Tree Characteristics | Mortality Tree Species | Liriodendron tulipifera / LITU (Tuliptree) | + | Tree Characteristics | Mortality Tree Species | Magnolia acuminata / MAAC (Cucumber - tree) | + | Tree Characteristics | Mortality Tree Species | Magnolia grandiflora / MAGR4 (Southern magnolia) | + | Tree Characteristics | Mortality Tree Species | Magnolia species / MAGSPP (Magnolias) | + | Tree Characteristics | Mortality Tree Species | Prunus species / MALPRU (cherry and plum species) | + | Tree Characteristics | Mortality Tree Species | Malus species / MALSPP (Apples) | + | Tree Characteristics | Mortality Tree Species | Magnolia macrophylla / MAMA2 (Bigleaf magnolia) | + | Tree Characteristics | Mortality Tree Species | Maclura pomifera / MAPO (Osage - orange) | + | Tree Characteristics | Mortality Tree Species | Magnolia virginiana / MAVI2 (Sweetbay) | + | Tree Characteristics | Mortality Tree Species | Morus alba / MOAL (White mulberry) | + | Tree Characteristics | Mortality Tree Species | Morus species / MORSPP (Mulberries) | + | Tree Characteristics | Mortality Tree Species | Morus rubra / MORU2 (Red mulberry) | + | Tree Characteristics | Mortality Tree Species | Nyssa aquatica / NYAQ2 (Water tupelo) | + | Tree Characteristics | Mortality Tree Species | Nyssa sylvatica / NYBI (Blackgum) | + | Tree Characteristics | Mortality Tree Species | Nyssa ogeche / NYOG (Ogeechee tupelo) | + | Tree Characteristics | Mortality Tree Species | Ostrya virginiana / OSVI (Hophornbeam) | + | Tree Characteristics | Mortality Tree Species | Oxydendrum arboreum / OXAR (Sourwood) | + | Tree Characteristics | Mortality Tree Species | Paulownia tomentosa / PATO2 (Princesstree) | + | Tree Characteristics | Mortality Tree Species | Persea borbonia / PEBO (Redbay) | + | Tree Characteristics | Mortality Tree Species | Picea abies / PIAB (Norway spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus albicaulis / PIAL (Whitebark pine) | + | Tree Characteristics | Mortality Tree Species | Pinus attenuata / PIAT (Knobcone pine) | + | Tree Characteristics | Mortality Tree Species | Pinus banksiana / PIBA2 (Jack pine) | + | Tree Characteristics | Mortality Tree Species | Pinus clausa / PICL (Sand pine) | + | Tree Characteristics | Mortality Tree Species | Pinus contorta / PICO (Lodgepole pine) | + | Tree Characteristics | Mortality Tree Species | Pinus echinata / PIEC2 (Shortleaf pine) | + | Tree Characteristics | Mortality Tree Species | Pinus elliottii / PIEL (Slash pine) | + | Tree Characteristics | Mortality Tree Species | Picea engelmannii / PIEN (Engelmann spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus flexilis / PIFL2 (Limber pine) | + | Tree Characteristics | Mortality Tree Species | Picea glauca / PIGL (White spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus glabra / PIGL2 (Spruce pine) | + | Tree Characteristics | Mortality Tree Species | Pinus jeffreyi / PIJE (Jeffrey pine) | + | Tree Characteristics | Mortality Tree Species | Pinus lambertiana / PILA (Sugar pine) | + | Tree Characteristics | Mortality Tree Species | Picea mariana / PIMA (Black spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus monticola / PIMO3 (Western white pine) | + | Tree Characteristics | Mortality Tree Species | Pinus palustris / PIPA2 (Longleaf pine) | + | Tree Characteristics | Mortality Tree Species | Pinus ponderosa / PIPO (Ponderosa pine) | + | Tree Characteristics | Mortality Tree Species | Picea pungens / PIPU (Blue spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus pungens / PIPU5 (Table mountain pine) | + | Tree Characteristics | Mortality Tree Species | Pinus resinosa / PIRE (Red pine) | + | Tree Characteristics | Mortality Tree Species | Pinus rigida / PIRI (Pitch pine) | + | Tree Characteristics | Mortality Tree Species | Picea rubens / PIRU (Red spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus sabiniana / PISA2 (Gray pine) | + | Tree Characteristics | Mortality Tree Species | Pinus serotina / PISE (Pond pine) | + | Tree Characteristics | Mortality Tree Species | Picea sitchensis / PISI (Sitka spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus strobus / PIST (Eastern white pine) | + | Tree Characteristics | Mortality Tree Species | Pinus sylvestris / PISY (Scots pine) | + | Tree Characteristics | Mortality Tree Species | Pinus taeda / PITA (Loblolly pine) | + | Tree Characteristics | Mortality Tree Species | Pinus virginiana / PIVI2 (Virginia pine) | + | Tree Characteristics | Mortality Tree Species | Platanus occidentalis / PLOC (American sycamore) | + | Tree Characteristics | Mortality Tree Species | Populus balsamifera / POBA2 (Balsam poplar) | + | Tree Characteristics | Mortality Tree Species | Populus grandidentata / POGR4 (Bigtooth aspen) | + | Tree Characteristics | Mortality Tree Species | Populus heterophylla / POHE4 (Swamp cottonwood) | + | Tree Characteristics | Mortality Tree Species | Populus tremuloides / POTR12 (Quaking aspen) | + | Tree Characteristics | Mortality Tree Species | Prunus americana / PRAM (American plum) | + | Tree Characteristics | Mortality Tree Species | Prunus emarginata / PREM (Bitter cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus pensylvanica / PRPE2 (Pin cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus serotina / PRSE2 (Black cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus virginiana / PRVI (Chokecherry) | + | Tree Characteristics | Mortality Tree Species | Pseudotsuga menziesii / PSME (Douglas - fir) | + | Tree Characteristics | Mortality Tree Species | Quercus agrifolia / QUAG (California live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus chrysolepis / QUCH2 (Canyon live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus douglasii / QUDU (Blue oak) | + | Tree Characteristics | Mortality Tree Species | Quercus ellipsoidalis / QUEL (Northern pin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus species / QUESPP (Oaks) | + | Tree Characteristics | Mortality Tree Species | Quercus falcata / QUFA (Southern red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus imbricaria / QUIM (Shingle oak) | + | Tree Characteristics | Mortality Tree Species | Quercus incana / QUIN (Bluejack oak) | + | Tree Characteristics | Mortality Tree Species | Quercus laevis / QULA2 (Turkey oak) | + | Tree Characteristics | Mortality Tree Species | Quercus laurifolia / QULA3 (Laurel oak) | + | Tree Characteristics | Mortality Tree Species | Quercus lobata / QULO (Valley oak) | + | Tree Characteristics | Mortality Tree Species | Quercus lyrata / QULY (Overcup oak) | + | Tree Characteristics | Mortality Tree Species | Quercus macrocarpa / QUMA2 (Bur oak) | + | Tree Characteristics | Mortality Tree Species | Quercus michauxii / QUMI (Swamp chestnut oak) | + | Tree Characteristics | Mortality Tree Species | Quercus muehlenbergii / QUMU (Chinkapin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus nigra / QUNI (Water oak) | + | Tree Characteristics | Mortality Tree Species | Quercus palustris / QUPA2 (Pin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus phellos / QUPH (Willow oak) | + | Tree Characteristics | Mortality Tree Species | Quercus rubra / QURU (Northern red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus shumardii / QUSH (Shumard oak) | + | Tree Characteristics | Mortality Tree Species | Quercus stellata / QUST (Post oak) | + | Tree Characteristics | Mortality Tree Species | Quercus texana / QUTE (Texas red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus virginiana / QUVI (Live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus wislizeni / QUWI2 (Interior live oak) | + | Tree Characteristics | Mortality Tree Species | Robinia pseudoacacia / ROPS (Black locust) | + | Tree Characteristics | Mortality Tree Species | Salix bebbiana / SABE2 (Bebb willow) | + | Tree Characteristics | Mortality Tree Species | Salix species / SALSPP (Willows) | + | Tree Characteristics | Mortality Tree Species | Salix nigra / SANI (Black willow) | + | Tree Characteristics | Mortality Tree Species | Sorbus americana / SOAM3 (American mountain - ash) | + | Tree Characteristics | Mortality Tree Species | Taxodium ascendens / TAAS (Pond cypress) | + | Tree Characteristics | Mortality Tree Species | Taxus brevifolia / TABR2 (Pacific yew) | + | Tree Characteristics | Mortality Tree Species | Taxodium distichum / TADI2 (Bald cypress) | + | Tree Characteristics | Mortality Tree Species | Thuja occidentalis / THOC2 (arborvitae) | + | Tree Characteristics | Mortality Tree Species | Thuja plicata / THPL (Western redcedar) | + | Tree Characteristics | Mortality Tree Species | Tilia americana / TIAM (American basswood) | + | Tree Characteristics | Mortality Tree Species | Tsuga canadensis / TSCA (Eastern hemlock) | + | Tree Characteristics | Mortality Tree Species | Tsuga heterophylla / TSHE (Western hemlock) | + | Tree Characteristics | Mortality Tree Species | Tsuga mertensiana / TSME (Mountain hemlock) | + | Tree Characteristics | Mortality Tree Species | Ulmus alata / ULAL (Winged elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus americana / ULAM (American elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus species / ULMSPP (Elms) | + | Tree Characteristics | Mortality Tree Species | Ulmus pumila / ULPU (Siberian elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus rubra / ULRU (Slippery elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus thomasii / ULTH (Rock elm) | + | Tree Characteristics | Mortality Tree Species | Umbellularia californica / UMCA (California - laurel) | diff --git a/features/mortality-input_tree-characteristics_canopy-height.feature b/features/mortality-input_tree-characteristics_canopy-height.feature new file mode 100644 index 000000000..528c49e30 --- /dev/null +++ b/features/mortality-input_tree-characteristics_canopy-height.feature @@ -0,0 +1,200 @@ +@core +Feature: Mortality & Surface Input - Tree Characteristics -> Canopy Height + + @core + Scenario Outline: Canopy Height is displayed with these Tree Species + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | group | + | Tree Characteristics | Canopy Height | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + + @extended + Scenario Outline: Canopy Height is displayed with these Tree Species (extended) + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | group | + | Tree Characteristics | Canopy Height | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + | Tree Characteristics | Mortality Tree Species | Abies balsamea / ABBA (Balsam fir) | + | Tree Characteristics | Mortality Tree Species | Abies concolor / ABCO (White fir) | + | Tree Characteristics | Mortality Tree Species | Abies grandis / ABGR (Grand fir) | + | Tree Characteristics | Mortality Tree Species | Abies lasiocarpa / ABLA (Subalpine fir) | + | Tree Characteristics | Mortality Tree Species | Abies magnifica / ABMA (Red Fir) | + | Tree Characteristics | Mortality Tree Species | Abies procera / ABPR (Noble Fir) | + | Tree Characteristics | Mortality Tree Species | Acer barbatum / ACBA3 (Southern sugar maple) | + | Tree Characteristics | Mortality Tree Species | Acer macrophyllum / ACMA3 (Bigleaf maple) | + | Tree Characteristics | Mortality Tree Species | Acer negundo / ACNE2 (Boxelder) | + | Tree Characteristics | Mortality Tree Species | Acer nigrum / ACNI5 (Black maple) | + | Tree Characteristics | Mortality Tree Species | Acer pensylvanicum / ACPE (Striped maple) | + | Tree Characteristics | Mortality Tree Species | Acer saccharinum / ACSA2 (Silver maple) | + | Tree Characteristics | Mortality Tree Species | Acer saccharum / ACSA3 (Sugar maple) | + | Tree Characteristics | Mortality Tree Species | Acer spicatum / ACSP2 (Mountain maple) | + | Tree Characteristics | Mortality Tree Species | Aesculus flava / AEFL (Yellow buckeye) | + | Tree Characteristics | Mortality Tree Species | Aesculus glabra / AEGL (Ohio buckeye) | + | Tree Characteristics | Mortality Tree Species | Ailanthus altissima / AIAL (Ailanthus) | + | Tree Characteristics | Mortality Tree Species | Alnus rhombifolia / ALRH2 (White alder) | + | Tree Characteristics | Mortality Tree Species | Alnus rubra / ALRU2 (Red alder) | + | Tree Characteristics | Mortality Tree Species | Amelanchier arborea / AMAR3 (Common serviceberry) | + | Tree Characteristics | Mortality Tree Species | Arbutus menziesii / ARME (Pacific madrone) | + | Tree Characteristics | Mortality Tree Species | Betula alleghaniensis / BEAL2 (Yellow birch) | + | Tree Characteristics | Mortality Tree Species | Betula lenta / BELE (Sweet birch) | + | Tree Characteristics | Mortality Tree Species | Betula nigra / BENI (River Birch) | + | Tree Characteristics | Mortality Tree Species | Betula occidentalis / BEOC2 (Water birch) | + | Tree Characteristics | Mortality Tree Species | Betula papyrifera / BEPA (Paper birch) | + | Tree Characteristics | Mortality Tree Species | Betula species / BETSPP (Birches) | + | Tree Characteristics | Mortality Tree Species | Carya alba / CAAL27 (Mockernut hickory) | + | Tree Characteristics | Mortality Tree Species | Carpinus caroliniana / CACA18 (American hornbeam) | + | Tree Characteristics | Mortality Tree Species | Carya cordiformis / CACOL3 (Bitternut hickory) | + | Tree Characteristics | Mortality Tree Species | Castanea dentata / CADE12 (American chestnut) | + | Tree Characteristics | Mortality Tree Species | Calocedrus decurrens / CADE27 (Incense - cedar) | + | Tree Characteristics | Mortality Tree Species | Carya glabra / CAGL8 (Pignut hickory) | + | Tree Characteristics | Mortality Tree Species | Carya illinoinensis / CAIL2 (Pecan) | + | Tree Characteristics | Mortality Tree Species | Carya laciniosa / CALA21 (Shellbark hickory) | + | Tree Characteristics | Mortality Tree Species | Carya ovata / CAOV2 (Shagbark hickory) | + | Tree Characteristics | Mortality Tree Species | Carya species / CARSPP (Hickories) | + | Tree Characteristics | Mortality Tree Species | Carya texana / CATE9 (Black hickory) | + | Tree Characteristics | Mortality Tree Species | Cercis canadensis / CECA4 (Eastern redbud) | + | Tree Characteristics | Mortality Tree Species | Celtis laevigata / CELA (Sugarberry) | + | Tree Characteristics | Mortality Tree Species | Celtis occidentalis / CEOC (Common hackberry) | + | Tree Characteristics | Mortality Tree Species | Chrysolepis chrysophylla / CHCHC4 (Giant chinkapin) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis lawsoniana / CHLA (PortOrford - cedar) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis nootkatensis / CHNO (Alaska - cedar) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis thyoides / CHTH2 (Atlantic white - cedar) | + | Tree Characteristics | Mortality Tree Species | Cornus nuttallii / CONU4 (Pacific dogwood) | + | Tree Characteristics | Mortality Tree Species | Crataegus species / CRASPP (Hawthorns) | + | Tree Characteristics | Mortality Tree Species | Diospyros virginiana / DIVI5 (Persimmon) | + | Tree Characteristics | Mortality Tree Species | Fagus grandifolia / FAGR (American beech) | + | Tree Characteristics | Mortality Tree Species | Fraxinus americana / FRAM2 (White ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus species / FRASPP (Ashes) | + | Tree Characteristics | Mortality Tree Species | Fraxinus nigra / FRNI (Black ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus pennsylvanica / FRPE (Green ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus profunda / FRPR (Pumpkin ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus quadrangulata / FRQU (Blue ash) | + | Tree Characteristics | Mortality Tree Species | Gleditsia triacanthos / GLTR (Honeylocust) | + | Tree Characteristics | Mortality Tree Species | Gordonia lasianthus / GOLA (Loblolly bay) | + | Tree Characteristics | Mortality Tree Species | Gymnocladus dioicus / GYDI (Kentucky coffeetree) | + | Tree Characteristics | Mortality Tree Species | Halesia species / HALSPP (Silverbells) | + | Tree Characteristics | Mortality Tree Species | Ilex opaca / ILOP (American holly) | + | Tree Characteristics | Mortality Tree Species | Juglans cinerea / JUCI (Butternut) | + | Tree Characteristics | Mortality Tree Species | Juglans nigra / JUNI (Black walnut) | + | Tree Characteristics | Mortality Tree Species | Juniperus occidentalis / JUOC (Western juniper) | + | Tree Characteristics | Mortality Tree Species | Juniperus virginiana / JUVI (Eastern redcedar) | + | Tree Characteristics | Mortality Tree Species | Larix laricina / LALA (Tamarack) | + | Tree Characteristics | Mortality Tree Species | Larix lyallii / LALY (Subalpine Larch) | + | Tree Characteristics | Mortality Tree Species | Larix occidentalis / LAOC (Western Larch) | + | Tree Characteristics | Mortality Tree Species | Lithocarpus densiflorus / LIDE3 (Tanoak) | + | Tree Characteristics | Mortality Tree Species | Liquidambar styraciflua / LIST2 (Sweetgum) | + | Tree Characteristics | Mortality Tree Species | Liriodendron tulipifera / LITU (Tuliptree) | + | Tree Characteristics | Mortality Tree Species | Magnolia acuminata / MAAC (Cucumber - tree) | + | Tree Characteristics | Mortality Tree Species | Magnolia grandiflora / MAGR4 (Southern magnolia) | + | Tree Characteristics | Mortality Tree Species | Magnolia species / MAGSPP (Magnolias) | + | Tree Characteristics | Mortality Tree Species | Prunus species / MALPRU (cherry and plum species) | + | Tree Characteristics | Mortality Tree Species | Malus species / MALSPP (Apples) | + | Tree Characteristics | Mortality Tree Species | Magnolia macrophylla / MAMA2 (Bigleaf magnolia) | + | Tree Characteristics | Mortality Tree Species | Maclura pomifera / MAPO (Osage - orange) | + | Tree Characteristics | Mortality Tree Species | Magnolia virginiana / MAVI2 (Sweetbay) | + | Tree Characteristics | Mortality Tree Species | Morus alba / MOAL (White mulberry) | + | Tree Characteristics | Mortality Tree Species | Morus species / MORSPP (Mulberries) | + | Tree Characteristics | Mortality Tree Species | Morus rubra / MORU2 (Red mulberry) | + | Tree Characteristics | Mortality Tree Species | Nyssa aquatica / NYAQ2 (Water tupelo) | + | Tree Characteristics | Mortality Tree Species | Nyssa sylvatica / NYBI (Blackgum) | + | Tree Characteristics | Mortality Tree Species | Nyssa ogeche / NYOG (Ogeechee tupelo) | + | Tree Characteristics | Mortality Tree Species | Ostrya virginiana / OSVI (Hophornbeam) | + | Tree Characteristics | Mortality Tree Species | Oxydendrum arboreum / OXAR (Sourwood) | + | Tree Characteristics | Mortality Tree Species | Paulownia tomentosa / PATO2 (Princesstree) | + | Tree Characteristics | Mortality Tree Species | Persea borbonia / PEBO (Redbay) | + | Tree Characteristics | Mortality Tree Species | Picea abies / PIAB (Norway spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus albicaulis / PIAL (Whitebark pine) | + | Tree Characteristics | Mortality Tree Species | Pinus attenuata / PIAT (Knobcone pine) | + | Tree Characteristics | Mortality Tree Species | Pinus banksiana / PIBA2 (Jack pine) | + | Tree Characteristics | Mortality Tree Species | Pinus clausa / PICL (Sand pine) | + | Tree Characteristics | Mortality Tree Species | Pinus contorta / PICO (Lodgepole pine) | + | Tree Characteristics | Mortality Tree Species | Pinus echinata / PIEC2 (Shortleaf pine) | + | Tree Characteristics | Mortality Tree Species | Pinus elliottii / PIEL (Slash pine) | + | Tree Characteristics | Mortality Tree Species | Picea engelmannii / PIEN (Engelmann spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus flexilis / PIFL2 (Limber pine) | + | Tree Characteristics | Mortality Tree Species | Picea glauca / PIGL (White spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus glabra / PIGL2 (Spruce pine) | + | Tree Characteristics | Mortality Tree Species | Pinus jeffreyi / PIJE (Jeffrey pine) | + | Tree Characteristics | Mortality Tree Species | Pinus lambertiana / PILA (Sugar pine) | + | Tree Characteristics | Mortality Tree Species | Picea mariana / PIMA (Black spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus monticola / PIMO3 (Western white pine) | + | Tree Characteristics | Mortality Tree Species | Pinus palustris / PIPA2 (Longleaf pine) | + | Tree Characteristics | Mortality Tree Species | Pinus ponderosa / PIPO (Ponderosa pine) | + | Tree Characteristics | Mortality Tree Species | Picea pungens / PIPU (Blue spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus pungens / PIPU5 (Table mountain pine) | + | Tree Characteristics | Mortality Tree Species | Pinus resinosa / PIRE (Red pine) | + | Tree Characteristics | Mortality Tree Species | Pinus rigida / PIRI (Pitch pine) | + | Tree Characteristics | Mortality Tree Species | Picea rubens / PIRU (Red spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus sabiniana / PISA2 (Gray pine) | + | Tree Characteristics | Mortality Tree Species | Pinus serotina / PISE (Pond pine) | + | Tree Characteristics | Mortality Tree Species | Picea sitchensis / PISI (Sitka spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus strobus / PIST (Eastern white pine) | + | Tree Characteristics | Mortality Tree Species | Pinus sylvestris / PISY (Scots pine) | + | Tree Characteristics | Mortality Tree Species | Pinus taeda / PITA (Loblolly pine) | + | Tree Characteristics | Mortality Tree Species | Pinus virginiana / PIVI2 (Virginia pine) | + | Tree Characteristics | Mortality Tree Species | Platanus occidentalis / PLOC (American sycamore) | + | Tree Characteristics | Mortality Tree Species | Populus balsamifera / POBA2 (Balsam poplar) | + | Tree Characteristics | Mortality Tree Species | Populus grandidentata / POGR4 (Bigtooth aspen) | + | Tree Characteristics | Mortality Tree Species | Populus heterophylla / POHE4 (Swamp cottonwood) | + | Tree Characteristics | Mortality Tree Species | Populus tremuloides / POTR12 (Quaking aspen) | + | Tree Characteristics | Mortality Tree Species | Prunus americana / PRAM (American plum) | + | Tree Characteristics | Mortality Tree Species | Prunus emarginata / PREM (Bitter cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus pensylvanica / PRPE2 (Pin cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus serotina / PRSE2 (Black cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus virginiana / PRVI (Chokecherry) | + | Tree Characteristics | Mortality Tree Species | Pseudotsuga menziesii / PSME (Douglas - fir) | + | Tree Characteristics | Mortality Tree Species | Quercus agrifolia / QUAG (California live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus chrysolepis / QUCH2 (Canyon live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus douglasii / QUDU (Blue oak) | + | Tree Characteristics | Mortality Tree Species | Quercus ellipsoidalis / QUEL (Northern pin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus species / QUESPP (Oaks) | + | Tree Characteristics | Mortality Tree Species | Quercus falcata / QUFA (Southern red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus imbricaria / QUIM (Shingle oak) | + | Tree Characteristics | Mortality Tree Species | Quercus incana / QUIN (Bluejack oak) | + | Tree Characteristics | Mortality Tree Species | Quercus laevis / QULA2 (Turkey oak) | + | Tree Characteristics | Mortality Tree Species | Quercus laurifolia / QULA3 (Laurel oak) | + | Tree Characteristics | Mortality Tree Species | Quercus lobata / QULO (Valley oak) | + | Tree Characteristics | Mortality Tree Species | Quercus lyrata / QULY (Overcup oak) | + | Tree Characteristics | Mortality Tree Species | Quercus macrocarpa / QUMA2 (Bur oak) | + | Tree Characteristics | Mortality Tree Species | Quercus michauxii / QUMI (Swamp chestnut oak) | + | Tree Characteristics | Mortality Tree Species | Quercus muehlenbergii / QUMU (Chinkapin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus nigra / QUNI (Water oak) | + | Tree Characteristics | Mortality Tree Species | Quercus palustris / QUPA2 (Pin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus phellos / QUPH (Willow oak) | + | Tree Characteristics | Mortality Tree Species | Quercus rubra / QURU (Northern red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus shumardii / QUSH (Shumard oak) | + | Tree Characteristics | Mortality Tree Species | Quercus stellata / QUST (Post oak) | + | Tree Characteristics | Mortality Tree Species | Quercus texana / QUTE (Texas red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus virginiana / QUVI (Live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus wislizeni / QUWI2 (Interior live oak) | + | Tree Characteristics | Mortality Tree Species | Robinia pseudoacacia / ROPS (Black locust) | + | Tree Characteristics | Mortality Tree Species | Salix bebbiana / SABE2 (Bebb willow) | + | Tree Characteristics | Mortality Tree Species | Salix species / SALSPP (Willows) | + | Tree Characteristics | Mortality Tree Species | Salix nigra / SANI (Black willow) | + | Tree Characteristics | Mortality Tree Species | Sorbus americana / SOAM3 (American mountain - ash) | + | Tree Characteristics | Mortality Tree Species | Taxodium ascendens / TAAS (Pond cypress) | + | Tree Characteristics | Mortality Tree Species | Taxus brevifolia / TABR2 (Pacific yew) | + | Tree Characteristics | Mortality Tree Species | Taxodium distichum / TADI2 (Bald cypress) | + | Tree Characteristics | Mortality Tree Species | Thuja occidentalis / THOC2 (arborvitae) | + | Tree Characteristics | Mortality Tree Species | Thuja plicata / THPL (Western redcedar) | + | Tree Characteristics | Mortality Tree Species | Tilia americana / TIAM (American basswood) | + | Tree Characteristics | Mortality Tree Species | Tsuga canadensis / TSCA (Eastern hemlock) | + | Tree Characteristics | Mortality Tree Species | Tsuga heterophylla / TSHE (Western hemlock) | + | Tree Characteristics | Mortality Tree Species | Tsuga mertensiana / TSME (Mountain hemlock) | + | Tree Characteristics | Mortality Tree Species | Ulmus alata / ULAL (Winged elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus americana / ULAM (American elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus species / ULMSPP (Elms) | + | Tree Characteristics | Mortality Tree Species | Ulmus pumila / ULPU (Siberian elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus rubra / ULRU (Slippery elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus thomasii / ULTH (Rock elm) | + | Tree Characteristics | Mortality Tree Species | Umbellularia californica / UMCA (California - laurel) | diff --git a/features/mortality-input_tree-characteristics_crown-ratio.feature b/features/mortality-input_tree-characteristics_crown-ratio.feature new file mode 100644 index 000000000..a7d8a5639 --- /dev/null +++ b/features/mortality-input_tree-characteristics_crown-ratio.feature @@ -0,0 +1,200 @@ +@core +Feature: Mortality & Surface Input - Tree Characteristics -> Crown Ratio + + @core + Scenario Outline: Crown Ratio is displayed with these Tree Species + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | group | + | Tree Characteristics | Crown Ratio | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + + @extended + Scenario Outline: Crown Ratio is displayed with these Tree Species (Extended) + Given I have started a new Surface & Mortality Worksheet in Guided Mode + When this input path is entered : : + Then the following input paths are displayed: + | submodule | group | + | Tree Characteristics | Crown Ratio | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Tree Characteristics | Mortality Tree Species | Abies amabilis / ABAM (Pacific silver fir) | + | Tree Characteristics | Mortality Tree Species | Abies balsamea / ABBA (Balsam fir) | + | Tree Characteristics | Mortality Tree Species | Abies concolor / ABCO (White fir) | + | Tree Characteristics | Mortality Tree Species | Abies grandis / ABGR (Grand fir) | + | Tree Characteristics | Mortality Tree Species | Abies lasiocarpa / ABLA (Subalpine fir) | + | Tree Characteristics | Mortality Tree Species | Abies magnifica / ABMA (Red Fir) | + | Tree Characteristics | Mortality Tree Species | Abies procera / ABPR (Noble Fir) | + | Tree Characteristics | Mortality Tree Species | Acer barbatum / ACBA3 (Southern sugar maple) | + | Tree Characteristics | Mortality Tree Species | Acer macrophyllum / ACMA3 (Bigleaf maple) | + | Tree Characteristics | Mortality Tree Species | Acer negundo / ACNE2 (Boxelder) | + | Tree Characteristics | Mortality Tree Species | Acer nigrum / ACNI5 (Black maple) | + | Tree Characteristics | Mortality Tree Species | Acer pensylvanicum / ACPE (Striped maple) | + | Tree Characteristics | Mortality Tree Species | Acer saccharinum / ACSA2 (Silver maple) | + | Tree Characteristics | Mortality Tree Species | Acer saccharum / ACSA3 (Sugar maple) | + | Tree Characteristics | Mortality Tree Species | Acer spicatum / ACSP2 (Mountain maple) | + | Tree Characteristics | Mortality Tree Species | Aesculus flava / AEFL (Yellow buckeye) | + | Tree Characteristics | Mortality Tree Species | Aesculus glabra / AEGL (Ohio buckeye) | + | Tree Characteristics | Mortality Tree Species | Ailanthus altissima / AIAL (Ailanthus) | + | Tree Characteristics | Mortality Tree Species | Alnus rhombifolia / ALRH2 (White alder) | + | Tree Characteristics | Mortality Tree Species | Alnus rubra / ALRU2 (Red alder) | + | Tree Characteristics | Mortality Tree Species | Amelanchier arborea / AMAR3 (Common serviceberry) | + | Tree Characteristics | Mortality Tree Species | Arbutus menziesii / ARME (Pacific madrone) | + | Tree Characteristics | Mortality Tree Species | Betula alleghaniensis / BEAL2 (Yellow birch) | + | Tree Characteristics | Mortality Tree Species | Betula lenta / BELE (Sweet birch) | + | Tree Characteristics | Mortality Tree Species | Betula nigra / BENI (River Birch) | + | Tree Characteristics | Mortality Tree Species | Betula occidentalis / BEOC2 (Water birch) | + | Tree Characteristics | Mortality Tree Species | Betula papyrifera / BEPA (Paper birch) | + | Tree Characteristics | Mortality Tree Species | Betula species / BETSPP (Birches) | + | Tree Characteristics | Mortality Tree Species | Carya alba / CAAL27 (Mockernut hickory) | + | Tree Characteristics | Mortality Tree Species | Carpinus caroliniana / CACA18 (American hornbeam) | + | Tree Characteristics | Mortality Tree Species | Carya cordiformis / CACOL3 (Bitternut hickory) | + | Tree Characteristics | Mortality Tree Species | Castanea dentata / CADE12 (American chestnut) | + | Tree Characteristics | Mortality Tree Species | Calocedrus decurrens / CADE27 (Incense - cedar) | + | Tree Characteristics | Mortality Tree Species | Carya glabra / CAGL8 (Pignut hickory) | + | Tree Characteristics | Mortality Tree Species | Carya illinoinensis / CAIL2 (Pecan) | + | Tree Characteristics | Mortality Tree Species | Carya laciniosa / CALA21 (Shellbark hickory) | + | Tree Characteristics | Mortality Tree Species | Carya ovata / CAOV2 (Shagbark hickory) | + | Tree Characteristics | Mortality Tree Species | Carya species / CARSPP (Hickories) | + | Tree Characteristics | Mortality Tree Species | Carya texana / CATE9 (Black hickory) | + | Tree Characteristics | Mortality Tree Species | Cercis canadensis / CECA4 (Eastern redbud) | + | Tree Characteristics | Mortality Tree Species | Celtis laevigata / CELA (Sugarberry) | + | Tree Characteristics | Mortality Tree Species | Celtis occidentalis / CEOC (Common hackberry) | + | Tree Characteristics | Mortality Tree Species | Chrysolepis chrysophylla / CHCHC4 (Giant chinkapin) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis lawsoniana / CHLA (PortOrford - cedar) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis nootkatensis / CHNO (Alaska - cedar) | + | Tree Characteristics | Mortality Tree Species | Chamaecyparis thyoides / CHTH2 (Atlantic white - cedar) | + | Tree Characteristics | Mortality Tree Species | Cornus nuttallii / CONU4 (Pacific dogwood) | + | Tree Characteristics | Mortality Tree Species | Crataegus species / CRASPP (Hawthorns) | + | Tree Characteristics | Mortality Tree Species | Diospyros virginiana / DIVI5 (Persimmon) | + | Tree Characteristics | Mortality Tree Species | Fagus grandifolia / FAGR (American beech) | + | Tree Characteristics | Mortality Tree Species | Fraxinus americana / FRAM2 (White ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus species / FRASPP (Ashes) | + | Tree Characteristics | Mortality Tree Species | Fraxinus nigra / FRNI (Black ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus pennsylvanica / FRPE (Green ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus profunda / FRPR (Pumpkin ash) | + | Tree Characteristics | Mortality Tree Species | Fraxinus quadrangulata / FRQU (Blue ash) | + | Tree Characteristics | Mortality Tree Species | Gleditsia triacanthos / GLTR (Honeylocust) | + | Tree Characteristics | Mortality Tree Species | Gordonia lasianthus / GOLA (Loblolly bay) | + | Tree Characteristics | Mortality Tree Species | Gymnocladus dioicus / GYDI (Kentucky coffeetree) | + | Tree Characteristics | Mortality Tree Species | Halesia species / HALSPP (Silverbells) | + | Tree Characteristics | Mortality Tree Species | Ilex opaca / ILOP (American holly) | + | Tree Characteristics | Mortality Tree Species | Juglans cinerea / JUCI (Butternut) | + | Tree Characteristics | Mortality Tree Species | Juglans nigra / JUNI (Black walnut) | + | Tree Characteristics | Mortality Tree Species | Juniperus occidentalis / JUOC (Western juniper) | + | Tree Characteristics | Mortality Tree Species | Juniperus virginiana / JUVI (Eastern redcedar) | + | Tree Characteristics | Mortality Tree Species | Larix laricina / LALA (Tamarack) | + | Tree Characteristics | Mortality Tree Species | Larix lyallii / LALY (Subalpine Larch) | + | Tree Characteristics | Mortality Tree Species | Larix occidentalis / LAOC (Western Larch) | + | Tree Characteristics | Mortality Tree Species | Lithocarpus densiflorus / LIDE3 (Tanoak) | + | Tree Characteristics | Mortality Tree Species | Liquidambar styraciflua / LIST2 (Sweetgum) | + | Tree Characteristics | Mortality Tree Species | Liriodendron tulipifera / LITU (Tuliptree) | + | Tree Characteristics | Mortality Tree Species | Magnolia acuminata / MAAC (Cucumber - tree) | + | Tree Characteristics | Mortality Tree Species | Magnolia grandiflora / MAGR4 (Southern magnolia) | + | Tree Characteristics | Mortality Tree Species | Magnolia species / MAGSPP (Magnolias) | + | Tree Characteristics | Mortality Tree Species | Prunus species / MALPRU (cherry and plum species) | + | Tree Characteristics | Mortality Tree Species | Malus species / MALSPP (Apples) | + | Tree Characteristics | Mortality Tree Species | Magnolia macrophylla / MAMA2 (Bigleaf magnolia) | + | Tree Characteristics | Mortality Tree Species | Maclura pomifera / MAPO (Osage - orange) | + | Tree Characteristics | Mortality Tree Species | Magnolia virginiana / MAVI2 (Sweetbay) | + | Tree Characteristics | Mortality Tree Species | Morus alba / MOAL (White mulberry) | + | Tree Characteristics | Mortality Tree Species | Morus species / MORSPP (Mulberries) | + | Tree Characteristics | Mortality Tree Species | Morus rubra / MORU2 (Red mulberry) | + | Tree Characteristics | Mortality Tree Species | Nyssa aquatica / NYAQ2 (Water tupelo) | + | Tree Characteristics | Mortality Tree Species | Nyssa sylvatica / NYBI (Blackgum) | + | Tree Characteristics | Mortality Tree Species | Nyssa ogeche / NYOG (Ogeechee tupelo) | + | Tree Characteristics | Mortality Tree Species | Ostrya virginiana / OSVI (Hophornbeam) | + | Tree Characteristics | Mortality Tree Species | Oxydendrum arboreum / OXAR (Sourwood) | + | Tree Characteristics | Mortality Tree Species | Paulownia tomentosa / PATO2 (Princesstree) | + | Tree Characteristics | Mortality Tree Species | Persea borbonia / PEBO (Redbay) | + | Tree Characteristics | Mortality Tree Species | Picea abies / PIAB (Norway spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus albicaulis / PIAL (Whitebark pine) | + | Tree Characteristics | Mortality Tree Species | Pinus attenuata / PIAT (Knobcone pine) | + | Tree Characteristics | Mortality Tree Species | Pinus banksiana / PIBA2 (Jack pine) | + | Tree Characteristics | Mortality Tree Species | Pinus clausa / PICL (Sand pine) | + | Tree Characteristics | Mortality Tree Species | Pinus contorta / PICO (Lodgepole pine) | + | Tree Characteristics | Mortality Tree Species | Pinus echinata / PIEC2 (Shortleaf pine) | + | Tree Characteristics | Mortality Tree Species | Pinus elliottii / PIEL (Slash pine) | + | Tree Characteristics | Mortality Tree Species | Picea engelmannii / PIEN (Engelmann spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus flexilis / PIFL2 (Limber pine) | + | Tree Characteristics | Mortality Tree Species | Picea glauca / PIGL (White spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus glabra / PIGL2 (Spruce pine) | + | Tree Characteristics | Mortality Tree Species | Pinus jeffreyi / PIJE (Jeffrey pine) | + | Tree Characteristics | Mortality Tree Species | Pinus lambertiana / PILA (Sugar pine) | + | Tree Characteristics | Mortality Tree Species | Picea mariana / PIMA (Black spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus monticola / PIMO3 (Western white pine) | + | Tree Characteristics | Mortality Tree Species | Pinus palustris / PIPA2 (Longleaf pine) | + | Tree Characteristics | Mortality Tree Species | Pinus ponderosa / PIPO (Ponderosa pine) | + | Tree Characteristics | Mortality Tree Species | Picea pungens / PIPU (Blue spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus pungens / PIPU5 (Table mountain pine) | + | Tree Characteristics | Mortality Tree Species | Pinus resinosa / PIRE (Red pine) | + | Tree Characteristics | Mortality Tree Species | Pinus rigida / PIRI (Pitch pine) | + | Tree Characteristics | Mortality Tree Species | Picea rubens / PIRU (Red spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus sabiniana / PISA2 (Gray pine) | + | Tree Characteristics | Mortality Tree Species | Pinus serotina / PISE (Pond pine) | + | Tree Characteristics | Mortality Tree Species | Picea sitchensis / PISI (Sitka spruce) | + | Tree Characteristics | Mortality Tree Species | Pinus strobus / PIST (Eastern white pine) | + | Tree Characteristics | Mortality Tree Species | Pinus sylvestris / PISY (Scots pine) | + | Tree Characteristics | Mortality Tree Species | Pinus taeda / PITA (Loblolly pine) | + | Tree Characteristics | Mortality Tree Species | Pinus virginiana / PIVI2 (Virginia pine) | + | Tree Characteristics | Mortality Tree Species | Platanus occidentalis / PLOC (American sycamore) | + | Tree Characteristics | Mortality Tree Species | Populus balsamifera / POBA2 (Balsam poplar) | + | Tree Characteristics | Mortality Tree Species | Populus grandidentata / POGR4 (Bigtooth aspen) | + | Tree Characteristics | Mortality Tree Species | Populus heterophylla / POHE4 (Swamp cottonwood) | + | Tree Characteristics | Mortality Tree Species | Populus tremuloides / POTR12 (Quaking aspen) | + | Tree Characteristics | Mortality Tree Species | Prunus americana / PRAM (American plum) | + | Tree Characteristics | Mortality Tree Species | Prunus emarginata / PREM (Bitter cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus pensylvanica / PRPE2 (Pin cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus serotina / PRSE2 (Black cherry) | + | Tree Characteristics | Mortality Tree Species | Prunus virginiana / PRVI (Chokecherry) | + | Tree Characteristics | Mortality Tree Species | Pseudotsuga menziesii / PSME (Douglas - fir) | + | Tree Characteristics | Mortality Tree Species | Quercus agrifolia / QUAG (California live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus chrysolepis / QUCH2 (Canyon live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus douglasii / QUDU (Blue oak) | + | Tree Characteristics | Mortality Tree Species | Quercus ellipsoidalis / QUEL (Northern pin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus species / QUESPP (Oaks) | + | Tree Characteristics | Mortality Tree Species | Quercus falcata / QUFA (Southern red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus imbricaria / QUIM (Shingle oak) | + | Tree Characteristics | Mortality Tree Species | Quercus incana / QUIN (Bluejack oak) | + | Tree Characteristics | Mortality Tree Species | Quercus laevis / QULA2 (Turkey oak) | + | Tree Characteristics | Mortality Tree Species | Quercus laurifolia / QULA3 (Laurel oak) | + | Tree Characteristics | Mortality Tree Species | Quercus lobata / QULO (Valley oak) | + | Tree Characteristics | Mortality Tree Species | Quercus lyrata / QULY (Overcup oak) | + | Tree Characteristics | Mortality Tree Species | Quercus macrocarpa / QUMA2 (Bur oak) | + | Tree Characteristics | Mortality Tree Species | Quercus michauxii / QUMI (Swamp chestnut oak) | + | Tree Characteristics | Mortality Tree Species | Quercus muehlenbergii / QUMU (Chinkapin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus nigra / QUNI (Water oak) | + | Tree Characteristics | Mortality Tree Species | Quercus palustris / QUPA2 (Pin oak) | + | Tree Characteristics | Mortality Tree Species | Quercus phellos / QUPH (Willow oak) | + | Tree Characteristics | Mortality Tree Species | Quercus rubra / QURU (Northern red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus shumardii / QUSH (Shumard oak) | + | Tree Characteristics | Mortality Tree Species | Quercus stellata / QUST (Post oak) | + | Tree Characteristics | Mortality Tree Species | Quercus texana / QUTE (Texas red oak) | + | Tree Characteristics | Mortality Tree Species | Quercus virginiana / QUVI (Live oak) | + | Tree Characteristics | Mortality Tree Species | Quercus wislizeni / QUWI2 (Interior live oak) | + | Tree Characteristics | Mortality Tree Species | Robinia pseudoacacia / ROPS (Black locust) | + | Tree Characteristics | Mortality Tree Species | Salix bebbiana / SABE2 (Bebb willow) | + | Tree Characteristics | Mortality Tree Species | Salix species / SALSPP (Willows) | + | Tree Characteristics | Mortality Tree Species | Salix nigra / SANI (Black willow) | + | Tree Characteristics | Mortality Tree Species | Sorbus americana / SOAM3 (American mountain - ash) | + | Tree Characteristics | Mortality Tree Species | Taxodium ascendens / TAAS (Pond cypress) | + | Tree Characteristics | Mortality Tree Species | Taxus brevifolia / TABR2 (Pacific yew) | + | Tree Characteristics | Mortality Tree Species | Taxodium distichum / TADI2 (Bald cypress) | + | Tree Characteristics | Mortality Tree Species | Thuja occidentalis / THOC2 (arborvitae) | + | Tree Characteristics | Mortality Tree Species | Thuja plicata / THPL (Western redcedar) | + | Tree Characteristics | Mortality Tree Species | Tilia americana / TIAM (American basswood) | + | Tree Characteristics | Mortality Tree Species | Tsuga canadensis / TSCA (Eastern hemlock) | + | Tree Characteristics | Mortality Tree Species | Tsuga heterophylla / TSHE (Western hemlock) | + | Tree Characteristics | Mortality Tree Species | Tsuga mertensiana / TSME (Mountain hemlock) | + | Tree Characteristics | Mortality Tree Species | Ulmus alata / ULAL (Winged elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus americana / ULAM (American elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus species / ULMSPP (Elms) | + | Tree Characteristics | Mortality Tree Species | Ulmus pumila / ULPU (Siberian elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus rubra / ULRU (Slippery elm) | + | Tree Characteristics | Mortality Tree Species | Ulmus thomasii / ULTH (Rock elm) | + | Tree Characteristics | Mortality Tree Species | Umbellularia californica / UMCA (California - laurel) | diff --git a/features/surface-input_fuel-model.feature b/features/surface-input_fuel-model.feature new file mode 100644 index 000000000..f6fa18cca --- /dev/null +++ b/features/surface-input_fuel-model.feature @@ -0,0 +1,43 @@ +@core +Feature: Surface Input - Fuel Model + + @core + Scenario Outline: Fuel Model is displayed with Surface Outputs + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Fuel Model | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + | Fire Behavior | Surface Fire | Fireline Intensity | + | Fire Behavior | Surface Fire | Rate of Spread | + | Size | Surface - Fire Size | Spread Distance | + | Size | Surface - Fire Size | Fire Area | + | Size | Surface - Fire Size | Fire Perimeter | + | Size | Surface - Fire Size | Length-to-Width Ratio | + + @core + Scenario Outline: Fuel Model is displayed with Crown Outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Fuel Model | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Length-to-Width Ratio | + | Size | Crown - Fire Size | Spread Distance | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | diff --git a/features/surface-input_fuel-model_standard_fuel-model.feature b/features/surface-input_fuel-model_standard_fuel-model.feature new file mode 100644 index 000000000..025246ffa --- /dev/null +++ b/features/surface-input_fuel-model_standard_fuel-model.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Fuel Model -> Standard -> Fuel Model + + @core + Scenario: Fuel Model is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Rate of Spread | + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Model | Standard | Fuel Model | diff --git a/features/surface-input_fuel-moisture.feature b/features/surface-input_fuel-moisture.feature new file mode 100644 index 000000000..c0827e209 --- /dev/null +++ b/features/surface-input_fuel-moisture.feature @@ -0,0 +1,45 @@ +@core +Feature: Surface Input - Fuel Moisture + + @core + Scenario Outline: Fuel Moisture is displayed with Surface Outputs + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + | Fire Behavior | Surface Fire | Fireline Intensity | + | Fire Behavior | Surface Fire | Rate of Spread | + | Size | Surface - Fire Size | Spread Distance | + | Size | Surface - Fire Size | Fire Area | + | Size | Surface - Fire Size | Fire Perimeter | + | Size | Surface - Fire Size | Length-to-Width Ratio | + | Fire Behavior | Ignition | Probability of Ignition | + + @core + Scenario Outline: Fuel Moisture is displayed with Crown Outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Length-to-Width Ratio | + | Size | Crown - Fire Size | Spread Distance | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Behavior | Ignition | Probability of Ignition | diff --git a/features/surface-input_fuel-moisture_by-size-class.feature b/features/surface-input_fuel-moisture_by-size-class.feature new file mode 100644 index 000000000..30ecce745 --- /dev/null +++ b/features/surface-input_fuel-moisture_by-size-class.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Fuel Moisture -> By Size Class + + @core + Scenario: By Size Class is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + When these input paths are entered + | submodule | group | value | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + Then the following input paths are displayed: + | submodule | group | + | Fuel Moisture | By Size Class | \ No newline at end of file diff --git a/features/surface-input_fuel-moisture_by-size-class_10-h-fuel-moisture.feature b/features/surface-input_fuel-moisture_by-size-class_10-h-fuel-moisture.feature new file mode 100644 index 000000000..4fe8bd8a3 --- /dev/null +++ b/features/surface-input_fuel-moisture_by-size-class_10-h-fuel-moisture.feature @@ -0,0 +1,142 @@ +@core +Feature: Surface Input - Fuel Moisture -> By Size Class -> 10-h Fuel Moisture + + @core + Scenario Outline: 10-h Fuel Moisture is displayed with these Fuel Model Codes + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | 10-h Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + + @extended + Scenario Outline: 10-h Fuel Moisture is displayed with these Fuel Model Codes + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | 10-h Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + | Fuel Model | Standard | Fuel Model | GR3/103 - Low load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR8/108 - High load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR9/109 - Very high load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB11/11 - Light logging slash (Static) | + | Fuel Model | Standard | Fuel Model | V-Hb/110 - Short Grass, < 0.5 m (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-Ha/111 - Tall Grass, > 0.5 m (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB12/12 - Medium logging slash (Static) | + | Fuel Model | Standard | Fuel Model | GS2/122 - Moderate load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS3/123 - Moderate load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS4/124 - High load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB13/13 - Heavy logging slash (Static) | + | Fuel Model | Standard | Fuel Model | SH1/141 - Low load, dry climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH2/142 - Moderate load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH3/143 - Moderate load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH4/144 - Low load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH5/145 - High load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH6/146 - Low load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH7/147 - Very high load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH8/148 - High load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH9/149 - Very high load, humid climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SCAL17/150 - Chamise with Moderate Load Grass, 4 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL15/151 - Chamise with Low Load Grass, 3 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL16/152 - North Slope Ceanothus with Moderate Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL14/153 - Manzanita/Scrub Oak with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL18/154 - Coastal Sage/Buckwheat Scrub with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | V-MH/155 - Short Green Shrub < 1 m With Grass, Discontinuous (< 1 m) often discontinuous and with grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-MMb/156 - Short Shrub < 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAb/157 - Short Shrub < 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | V-MMa/158 - Tall Shrub > 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAa/159 - Tall Shrub > 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | TU1/161 - Light load, dry climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU2/162 - Moderate load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | TU3/163 - Moderate load, humid climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU5/165 - Very high load, dry climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | M-EUCd/166 - Discontinuous Litter Eucalyptus Plantation, With or Without Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-H/167 - Deciduous or Conifer Litter, Shrub and Herb Understory | + | Fuel Model | Standard | Fuel Model | M-F/168 - Deciduous or Conifer Litter, Shrub and Fern Understory (Dynamic) | + | Fuel Model | Standard | Fuel Model | M-CAD/169 - Deciduous Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-ESC/170 - Sclerophyll Broadleaf Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-PIN/171 - Medium-Long Needle Pine Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-EUC/172 - Eucalyptus Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | TL1/181 - Low load, compact conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL2/182 - Low load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | TL3/183 - Moderate load conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL4/184 - Small downed logs (Static) | + | Fuel Model | Standard | Fuel Model | TL5/185 - High load conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL6/186 - Moderate load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | TL7/187 - Large downed logs (Static) | + | Fuel Model | Standard | Fuel Model | TL8/188 - Long-needle litter (Static) | + | Fuel Model | Standard | Fuel Model | TL9/189 - Very high load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | F-RAC/190 - Very Compact Litter, Short Needle Conifers (Static) | + | Fuel Model | Standard | Fuel Model | F-FOL/191 - Compact Litter, Deciduous or Evergreen Foliage (Static) | + | Fuel Model | Standard | Fuel Model | F-PIN/192 - Litter from Medium-Long Needle Pine Trees (Static) | + | Fuel Model | Standard | Fuel Model | F-EUC/193 - Pure Eucalyptus Litter, No Understory (Static) | + | Fuel Model | Standard | Fuel Model | FB2/2 - Timber grass and understory (Static) | + | Fuel Model | Standard | Fuel Model | SB1/201 - Low load activity fuel (Static) | + | Fuel Model | Standard | Fuel Model | SB2/202 - Moderate load activity or low load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | SB3/203 - High load activity fuel or moderate load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | SB4/204 - High load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | FB4/4 - Chaparral (Static) | + | Fuel Model | Standard | Fuel Model | FB5/5 - Brush (Static) | + | Fuel Model | Standard | Fuel Model | FB6/6 - Dormant brush, hardwood slash (Static) | + | Fuel Model | Standard | Fuel Model | FB7/7 - Southern rough (Static) | + | Fuel Model | Standard | Fuel Model | FB8/8 - Short needle litter (Static) | + | Fuel Model | Standard | Fuel Model | FB9/9 - Long needle or hardwood litter (Static) | + + @core + Scenario Outline: 10-h Fuel Moisture is displayed with Crown Outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + When these input paths are entered + | submodule | group | value | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | 10-h Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Spread Distance | diff --git a/features/surface-input_fuel-moisture_by-size-class_100-h-fuel-moisture.feature b/features/surface-input_fuel-moisture_by-size-class_100-h-fuel-moisture.feature new file mode 100644 index 000000000..70ecc7611 --- /dev/null +++ b/features/surface-input_fuel-moisture_by-size-class_100-h-fuel-moisture.feature @@ -0,0 +1,121 @@ +@core +Feature: Surface Input - Fuel Moisture -> By Size Class -> 100-h Fuel Moisture + + @core + Scenario Outline: 100-h Fuel Moisture is displayed with these Fuel Model Codes + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | 100-h Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + + @extended + Scenario Outline: 100-h Fuel Moisture is displayed with these Fuel Model Codes (Extended) + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | 100-h Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + | Fuel Model | Standard | Fuel Model | FB11/11 - Light logging slash (Static) | + | Fuel Model | Standard | Fuel Model | FB12/12 - Medium logging slash (Static) | + | Fuel Model | Standard | Fuel Model | GS4/124 - High load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB13/13 - Heavy logging slash (Static) | + | Fuel Model | Standard | Fuel Model | SH2/142 - Moderate load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH4/144 - Low load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH7/147 - Very high load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH8/148 - High load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SCAL17/150 - Chamise with Moderate Load Grass, 4 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL15/151 - Chamise with Low Load Grass, 3 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL16/152 - North Slope Ceanothus with Moderate Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL14/153 - Manzanita/Scrub Oak with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL18/154 - Coastal Sage/Buckwheat Scrub with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | TU1/161 - Light load, dry climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU2/162 - Moderate load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | TU3/163 - Moderate load, humid climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU5/165 - Very high load, dry climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | M-EUCd/166 - Discontinuous Litter Eucalyptus Plantation, With or Without Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-F/168 - Deciduous or Conifer Litter, Shrub and Fern Understory (Dynamic) | + | Fuel Model | Standard | Fuel Model | M-CAD/169 - Deciduous Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-ESC/170 - Sclerophyll Broadleaf Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | TL1/181 - Low load, compact conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL2/182 - Low load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | TL3/183 - Moderate load conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL4/184 - Small downed logs (Static) | + | Fuel Model | Standard | Fuel Model | TL5/185 - High load conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL6/186 - Moderate load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | TL7/187 - Large downed logs (Static) | + | Fuel Model | Standard | Fuel Model | TL8/188 - Long-needle litter (Static) | + | Fuel Model | Standard | Fuel Model | TL9/189 - Very high load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | F-RAC/190 - Very Compact Litter, Short Needle Conifers (Static) | + | Fuel Model | Standard | Fuel Model | F-FOL/191 - Compact Litter, Deciduous or Evergreen Foliage (Static) | + | Fuel Model | Standard | Fuel Model | F-EUC/193 - Pure Eucalyptus Litter, No Understory (Static) | + | Fuel Model | Standard | Fuel Model | FB2/2 - Timber grass and understory (Static) | + | Fuel Model | Standard | Fuel Model | SB1/201 - Low load activity fuel (Static) | + | Fuel Model | Standard | Fuel Model | SB2/202 - Moderate load activity or low load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | SB3/203 - High load activity fuel or moderate load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | SB4/204 - High load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | FB4/4 - Chaparral (Static) | + | Fuel Model | Standard | Fuel Model | FB6/6 - Dormant brush, hardwood slash (Static) | + | Fuel Model | Standard | Fuel Model | FB7/7 - Southern rough (Static) | + | Fuel Model | Standard | Fuel Model | FB8/8 - Short needle litter (Static) | + | Fuel Model | Standard | Fuel Model | FB9/9 - Long needle or hardwood litter (Static) | + + @core + Scenario Outline: 100-h Fuel Moisture is displayed with Crown outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + When these input paths are entered + | submodule | group | value | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | 100-h Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Spread Distance | diff --git a/features/surface-input_fuel-moisture_by-size-class_live-herbaceous-fuel-moisture.feature b/features/surface-input_fuel-moisture_by-size-class_live-herbaceous-fuel-moisture.feature new file mode 100644 index 000000000..b6a0acfb0 --- /dev/null +++ b/features/surface-input_fuel-moisture_by-size-class_live-herbaceous-fuel-moisture.feature @@ -0,0 +1,79 @@ +@core +Feature: Surface Input - Fuel Moisture -> By Size Class -> Live Herbaceous Fuel Moisture + + @core + Scenario Outline: Live Herbaceous Fuel Moisture is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : + + When these input paths are entered + | submodule | group | value | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | Live Herbaceous Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | GR1/101 - Short, sparse, dry climate grass (Dynamic) | + + @extended + Scenario Outline: Live Herbaceous Fuel Moisture is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : + + When these input paths are entered + | submodule | group | value | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | Live Herbaceous Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | GR1/101 - Short, sparse, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR2/102 - Low load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR3/103 - Low load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR4/104 - Moderate load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR5/105 - Low load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR6/106 - Moderate load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR7/107 - High load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR8/108 - High load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR9/109 - Very high load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-Hb/110 - Short Grass, < 0.5 m (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-Ha/111 - Tall Grass, > 0.5 m (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS1/121 - Low load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS2/122 - Moderate load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS3/123 - Moderate load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS4/124 - High load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH1/141 - Low load, dry climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH9/149 - Very high load, humid climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SCAL17/150 - Chamise with Moderate Load Grass, 4 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL15/151 - Chamise with Low Load Grass, 3 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL16/152 - North Slope Ceanothus with Moderate Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL14/153 - Manzanita/Scrub Oak with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL18/154 - Coastal Sage/Buckwheat Scrub with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | V-MH/155 - Short Green Shrub < 1 m With Grass, Discontinuous (< 1 m) often discontinuous and with grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU1/161 - Light load, dry climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU3/163 - Moderate load, humid climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | M-H/167 - Deciduous or Conifer Litter, Shrub and Herb Understory | + | Fuel Model | Standard | Fuel Model | M-F/168 - Deciduous or Conifer Litter, Shrub and Fern Understory (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB2/2 - Timber grass and understory (Static) | diff --git a/features/surface-input_fuel-moisture_by-size-class_live-woody-fuel-moisture.feature b/features/surface-input_fuel-moisture_by-size-class_live-woody-fuel-moisture.feature new file mode 100644 index 000000000..ff7c9882f --- /dev/null +++ b/features/surface-input_fuel-moisture_by-size-class_live-woody-fuel-moisture.feature @@ -0,0 +1,112 @@ +@core +Feature: Surface Input - Fuel Moisture -> By Size Class -> Live Woody Fuel Moisture + + @core + Scenario Outline: Live Woody Fuel Moisture is displayed with these Fuel Model Codes + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | Live Woody Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + + @extended + Scenario Outline: Live Woody Fuel Moisture is displayed with these Fuel Model Codes (extended) + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Individual Size Class | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | By Size Class | Live Woody Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + | Fuel Model | Standard | Fuel Model | V-Ha/111 - Tall Grass, > 0.5 m (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS1/121 - Low load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS2/122 - Moderate load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS3/123 - Moderate load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS4/124 - High load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH1/141 - Low load, dry climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH2/142 - Moderate load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH3/143 - Moderate load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH4/144 - Low load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH5/145 - High load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH6/146 - Low load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH7/147 - Very high load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH8/148 - High load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH9/149 - Very high load, humid climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SCAL17/150 - Chamise with Moderate Load Grass, 4 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL15/151 - Chamise with Low Load Grass, 3 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL16/152 - North Slope Ceanothus with Moderate Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL14/153 - Manzanita/Scrub Oak with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL18/154 - Coastal Sage/Buckwheat Scrub with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | V-MH/155 - Short Green Shrub < 1 m With Grass, Discontinuous (< 1 m) often discontinuous and with grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-MMb/156 - Short Shrub < 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAb/157 - Short Shrub < 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | V-MMa/158 - Tall Shrub > 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAa/159 - Tall Shrub > 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | TU1/161 - Light load, dry climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU2/162 - Moderate load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | TU3/163 - Moderate load, humid climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU4/164 - Dwarf conifer understory (Static) | + | Fuel Model | Standard | Fuel Model | TU5/165 - Very high load, dry climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | M-EUCd/166 - Discontinuous Litter Eucalyptus Plantation, With or Without Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-H/167 - Deciduous or Conifer Litter, Shrub and Herb Understory | + | Fuel Model | Standard | Fuel Model | M-F/168 - Deciduous or Conifer Litter, Shrub and Fern Understory (Dynamic) | + | Fuel Model | Standard | Fuel Model | M-CAD/169 - Deciduous Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-ESC/170 - Sclerophyll Broadleaf Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-PIN/171 - Medium-Long Needle Pine Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-EUC/172 - Eucalyptus Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | F-RAC/190 - Very Compact Litter, Short Needle Conifers (Static) | + | Fuel Model | Standard | Fuel Model | F-FOL/191 - Compact Litter, Deciduous or Evergreen Foliage (Static) | + | Fuel Model | Standard | Fuel Model | F-EUC/193 - Pure Eucalyptus Litter, No Understory (Static) | + | Fuel Model | Standard | Fuel Model | FB4/4 - Chaparral (Static) | + | Fuel Model | Standard | Fuel Model | FB5/5 - Brush (Static) | + | Fuel Model | Standard | Fuel Model | FB7/7 - Southern rough (Static) | + + @core + Scenario Outline: Live Woody Fuel Moisture is displayed with Crown outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Spread Distance | diff --git a/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories.feature b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories.feature new file mode 100644 index 000000000..ba16b48ee --- /dev/null +++ b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Fuel Moisture -> Dead, Live Herb, and Live Woody Categories + + @core + Scenario: Dead, Live Herb, and Live Woody Categories is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + When these input paths are entered + | submodule | group | value | + | Fuel Moisture | Moisture Input Mode | Dead, Live Herb, and Live Woody Categories | + Then the following input paths are displayed: + | submodule | group | + | Fuel Moisture | Dead, Live Herb, and Live Woody Categories | \ No newline at end of file diff --git a/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_dead-fuel-moisture.feature b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_dead-fuel-moisture.feature new file mode 100644 index 000000000..04b9fb3f7 --- /dev/null +++ b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_dead-fuel-moisture.feature @@ -0,0 +1,126 @@ +@core +Feature: Surface Input - Fuel Moisture -> Dead, Live Herb, and Live Woody Categories -> Dead Fuel Moisture + + @core + Scenario Outline: Dead Fuel Moisture is displayed with these Fuel Model Codes + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Dead, Live Herb, and Live Woody Categories | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | Dead, Live Herb, and Live Woody Categories | Dead Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB1/1 - Short grass (Static) | + + @extended + Scenario Outline: Dead Fuel Moisture is displayed with these Fuel Model Codes (extended) + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Dead, Live Herb, and Live Woody Categories | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | Dead, Live Herb, and Live Woody Categories | Dead Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB1/1 - Short grass (Static) | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + | Fuel Model | Standard | Fuel Model | GR1/101 - Short, sparse, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR2/102 - Low load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR3/103 - Low load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR4/104 - Moderate load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR5/105 - Low load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR6/106 - Moderate load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR7/107 - High load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR8/108 - High load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR9/109 - Very high load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB11/11 - Light logging slash (Static) | + | Fuel Model | Standard | Fuel Model | V-Ha/111 - Tall Grass, > 0.5 m (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB12/12 - Medium logging slash (Static) | + | Fuel Model | Standard | Fuel Model | GS1/121 - Low load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS2/122 - Moderate load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS3/123 - Moderate load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS4/124 - High load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | FB13/13 - Heavy logging slash (Static) | + | Fuel Model | Standard | Fuel Model | SH1/141 - Low load, dry climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH2/142 - Moderate load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH3/143 - Moderate load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH4/144 - Low load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH5/145 - High load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH6/146 - Low load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH7/147 - Very high load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH8/148 - High load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH9/149 - Very high load, humid climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SCAL17/150 - Chamise with Moderate Load Grass, 4 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL15/151 - Chamise with Low Load Grass, 3 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL16/152 - North Slope Ceanothus with Moderate Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL14/153 - Manzanita/Scrub Oak with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL18/154 - Coastal Sage/Buckwheat Scrub with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | V-MH/155 - Short Green Shrub < 1 m With Grass, Discontinuous (< 1 m) often discontinuous and with grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-MMb/156 - Short Shrub < 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAb/157 - Short Shrub < 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | V-MMa/158 - Tall Shrub > 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAa/159 - Tall Shrub > 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | TU1/161 - Light load, dry climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU2/162 - Moderate load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | TU3/163 - Moderate load, humid climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU4/164 - Dwarf conifer understory (Static) | + | Fuel Model | Standard | Fuel Model | TU5/165 - Very high load, dry climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | M-EUCd/166 - Discontinuous Litter Eucalyptus Plantation, With or Without Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-H/167 - Deciduous or Conifer Litter, Shrub and Herb Understory | + | Fuel Model | Standard | Fuel Model | M-F/168 - Deciduous or Conifer Litter, Shrub and Fern Understory (Dynamic) | + | Fuel Model | Standard | Fuel Model | M-CAD/169 - Deciduous Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-ESC/170 - Sclerophyll Broadleaf Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-PIN/171 - Medium-Long Needle Pine Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-EUC/172 - Eucalyptus Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | TL1/181 - Low load, compact conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL2/182 - Low load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | TL3/183 - Moderate load conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL4/184 - Small downed logs (Static) | + | Fuel Model | Standard | Fuel Model | TL5/185 - High load conifer litter (Static) | + | Fuel Model | Standard | Fuel Model | TL6/186 - Moderate load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | TL7/187 - Large downed logs (Static) | + | Fuel Model | Standard | Fuel Model | TL8/188 - Long-needle litter (Static) | + | Fuel Model | Standard | Fuel Model | TL9/189 - Very high load broadleaf litter (Static) | + | Fuel Model | Standard | Fuel Model | F-RAC/190 - Very Compact Litter, Short Needle Conifers (Static) | + | Fuel Model | Standard | Fuel Model | F-FOL/191 - Compact Litter, Deciduous or Evergreen Foliage (Static) | + | Fuel Model | Standard | Fuel Model | F-PIN/192 - Litter from Medium-Long Needle Pine Trees (Static) | + | Fuel Model | Standard | Fuel Model | F-EUC/193 - Pure Eucalyptus Litter, No Understory (Static) | + | Fuel Model | Standard | Fuel Model | FB2/2 - Timber grass and understory (Static) | + | Fuel Model | Standard | Fuel Model | SB1/201 - Low load activity fuel (Static) | + | Fuel Model | Standard | Fuel Model | SB2/202 - Moderate load activity or low load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | SB3/203 - High load activity fuel or moderate load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | SB4/204 - High load blowdown (Static) | + | Fuel Model | Standard | Fuel Model | FB3/3 - Tall grass (Static) | + | Fuel Model | Standard | Fuel Model | FB4/4 - Chaparral (Static) | + | Fuel Model | Standard | Fuel Model | FB5/5 - Brush (Static) | + | Fuel Model | Standard | Fuel Model | FB6/6 - Dormant brush, hardwood slash (Static) | + | Fuel Model | Standard | Fuel Model | FB7/7 - Southern rough (Static) | + | Fuel Model | Standard | Fuel Model | FB8/8 - Short needle litter (Static) | + | Fuel Model | Standard | Fuel Model | FB9/9 - Long needle or hardwood litter (Static) | diff --git a/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_live-herbaceous-fuel-moisture.feature b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_live-herbaceous-fuel-moisture.feature new file mode 100644 index 000000000..c6015675d --- /dev/null +++ b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_live-herbaceous-fuel-moisture.feature @@ -0,0 +1,90 @@ +@core +Feature: Surface Input - Fuel Moisture -> Dead, Live Herb, and Live Woody Categories -> Live Herbaceous Fuel Moisture + + @core + Scenario Outline: Live Herbaceous Fuel Moisture is displayed with these Fuel Models + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Dead, Live Herb, and Live Woody Categories | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | Dead, Live Herb, and Live Woody Categories | Live Herbaceous Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | GR1/101 - Short, sparse, dry climate grass (Dynamic) | + + @extended + Scenario Outline: Live Herbaceous Fuel Moisture is displayed with these Fuel Models (extended) + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + When these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + When this input path is entered : : : + + When these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Dead, Live Herb, and Live Woody Categories | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | Dead, Live Herb, and Live Woody Categories | Live Herbaceous Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | GR1/101 - Short, sparse, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR2/102 - Low load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR3/103 - Low load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR4/104 - Moderate load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR5/105 - Low load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR6/106 - Moderate load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR7/107 - High load, dry climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR8/108 - High load, very coarse, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | GR9/109 - Very high load, humid climate grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-Ha/111 - Tall Grass, > 0.5 m (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS1/121 - Low load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS2/122 - Moderate load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS3/123 - Moderate load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS4/124 - High load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH1/141 - Low load, dry climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH9/149 - Very high load, humid climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SCAL17/150 - Chamise with Moderate Load Grass, 4 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL15/151 - Chamise with Low Load Grass, 3 feet (Static) | + | Fuel Model | Standard | Fuel Model | SCAL16/152 - North Slope Ceanothus with Moderate Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL14/153 - Manzanita/Scrub Oak with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | SCAL18/154 - Coastal Sage/Buckwheat Scrub with Low Load Grass (Static) | + | Fuel Model | Standard | Fuel Model | V-MH/155 - Short Green Shrub < 1 m With Grass, Discontinuous (< 1 m) often discontinuous and with grass (Dynamic) | + | Fuel Model | Standard | Fuel Model | V-MMb/156 - Short Shrub < 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAb/157 - Short Shrub < 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | V-MMa/158 - Tall Shrub > 1 m, Low Dead Fraction and/or Thick Foliage (Static) | + | Fuel Model | Standard | Fuel Model | V-MAa/159 - Tall Shrub > 1 m, High Dead Fraction and/or Thin Fuel (Static) | + | Fuel Model | Standard | Fuel Model | TU1/161 - Light load, dry climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU3/163 - Moderate load, humid climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | M-EUCd/166 - Discontinuous Litter Eucalyptus Plantation, With or Without Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-H/167 - Deciduous or Conifer Litter, Shrub and Herb Understory | + | Fuel Model | Standard | Fuel Model | M-F/168 - Deciduous or Conifer Litter, Shrub and Fern Understory (Dynamic) | + | Fuel Model | Standard | Fuel Model | M-CAD/169 - Deciduous Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-ESC/170 - Sclerophyll Broadleaf Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-PIN/171 - Medium-Long Needle Pine Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | M-EUC/172 - Eucalyptus Litter, Shrub Understory (Static) | + | Fuel Model | Standard | Fuel Model | F-RAC/190 - Very Compact Litter, Short Needle Conifers (Static) | + | Fuel Model | Standard | Fuel Model | F-FOL/191 - Compact Litter, Deciduous or Evergreen Foliage (Static) | + | Fuel Model | Standard | Fuel Model | F-EUC/193 - Pure Eucalyptus Litter, No Understory (Static) | + | Fuel Model | Standard | Fuel Model | FB2/2 - Timber grass and understory (Static) | diff --git a/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_live-woody-fuel-moisture.feature b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_live-woody-fuel-moisture.feature new file mode 100644 index 000000000..91ee74c20 --- /dev/null +++ b/features/surface-input_fuel-moisture_dead-live-herb-and-live-woody-categories_live-woody-fuel-moisture.feature @@ -0,0 +1,73 @@ +@core +Feature: Surface Input - Fuel Moisture -> Dead, Live Herb, and Live Woody Categories -> Live Woody Fuel Moisture + + @core + Scenario Outline: Live Woody Fuel Moisture is displayed with these Fuel Models + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + And these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + And this input path is entered : : : + + And these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Dead, Live Herb, and Live Woody Categories | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | Dead, Live Herb, and Live Woody Categories | Live Woody Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + + @extended + Scenario Outline: Live Woody Fuel Moisture is displayed with these Fuel Models (extended) + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + + And these output paths are NOT selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + And this input path is entered : : : + + And these input paths are entered + | submodule | group | subgroup | + | Fuel Moisture | Moisture Input Mode | Dead, Live Herb, and Live Woody Categories | + + Then the following input paths are displayed: + | submodule | group | value | + | Fuel Moisture | Dead, Live Herb, and Live Woody Categories | Live Woody Fuel Moisture | + + Examples: This scenario is repeated for each of these rows + | submodule | group | subgroup | value | + | Fuel Model | Standard | Fuel Model | FB10/10 - Timber litter & understory (Static) | + | Fuel Model | Standard | Fuel Model | GS1/121 - Low load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS2/122 - Moderate load, dry climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS3/123 - Moderate load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | GS4/124 - High load, humid climate grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH1/141 - Low load, dry climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | SH2/142 - Moderate load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH3/143 - Moderate load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH4/144 - Low load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH5/145 - High load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH6/146 - Low load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH7/147 - Very high load, dry climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH8/148 - High load, humid climate shrub (Static) | + | Fuel Model | Standard | Fuel Model | SH9/149 - Very high load, humid climate shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU1/161 - Light load, dry climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU2/162 - Moderate load, humid climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | TU3/163 - Moderate load, humid climate timber-grass-shrub (Dynamic) | + | Fuel Model | Standard | Fuel Model | TU4/164 - Dwarf conifer understory (Static) | + | Fuel Model | Standard | Fuel Model | TU5/165 - Very high load, dry climate timber-shrub (Static) | + | Fuel Model | Standard | Fuel Model | FB4/4 - Chaparral (Static) | + | Fuel Model | Standard | Fuel Model | FB5/5 - Brush (Static) | + | Fuel Model | Standard | Fuel Model | FB7/7 - Southern rough (Static) | diff --git a/features/surface-input_fuel-moisture_moisture-scenario.feature b/features/surface-input_fuel-moisture_moisture-scenario.feature new file mode 100644 index 000000000..7e0824834 --- /dev/null +++ b/features/surface-input_fuel-moisture_moisture-scenario.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Fuel Moisture -> Moisture Scenario + + @core + Scenario: Moisture Scenario is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Surface Fire | Flame Length | + When these input paths are entered + | submodule | group | value | + | Fuel Moisture | Moisture Input Mode | Moisture Scenario | + Then the following input paths are displayed: + | submodule | group | + | Fuel Moisture | Moisture Scenario | \ No newline at end of file diff --git a/features/surface-input_size.feature b/features/surface-input_size.feature new file mode 100644 index 000000000..a302eeb6e --- /dev/null +++ b/features/surface-input_size.feature @@ -0,0 +1,30 @@ +@core +Feature: Surface Input - Size + + @core + Scenario Outline: Size is displayed + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Size | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Size | Surface - Fire Size | Fire Perimeter | + | Size | Surface - Fire Size | Fire Area | + | Size | Surface - Fire Size | Spread Distance | + + @core + Scenario Outline: Size is displayed + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Size | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Spread Distance | diff --git a/features/surface-input_spot.feature b/features/surface-input_spot.feature new file mode 100644 index 000000000..b91da2627 --- /dev/null +++ b/features/surface-input_spot.feature @@ -0,0 +1,14 @@ +@core +Feature: Surface Input - Spot + + @core + Scenario Outline: Spot is displayed + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Spot | + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Spot | Maximum Spotting Distance | Burning Pile | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | diff --git a/features/surface-input_spot_burning-pile.feature b/features/surface-input_spot_burning-pile.feature new file mode 100644 index 000000000..0b175dfd8 --- /dev/null +++ b/features/surface-input_spot_burning-pile.feature @@ -0,0 +1,12 @@ +@core +Feature: Surface Input - Spot -> Burning Pile + + @core + Scenario: Burning Pile is displayed when Burning Pile is selected + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Burning Pile | + Then the following input paths are displayed: + | submodule | group | + | Spot | Burning Pile | diff --git a/features/surface-input_spot_surface-fire-flame-length.feature b/features/surface-input_spot_surface-fire-flame-length.feature new file mode 100644 index 000000000..84aedcf7b --- /dev/null +++ b/features/surface-input_spot_surface-fire-flame-length.feature @@ -0,0 +1,17 @@ +@core +Feature: Surface Input - Spot -> Surface Fire Flame Length + + @core + Scenario: Surface Fire Flame Length is displayed when Wind-Driven Surface Fire is selected + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + When these output paths are NOT selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + | Fire Behavior | Direction Mode | Direction of Interest | + | Fire Behavior | Direction Mode | Heading, Flanking, Backing | + Then the following input paths are displayed: + | submodule | group | + | Spot | Surface Fire Flame Length | \ No newline at end of file diff --git a/features/surface-input_spread-directions.feature b/features/surface-input_spread-directions.feature new file mode 100644 index 000000000..bd3e7fdb4 --- /dev/null +++ b/features/surface-input_spread-directions.feature @@ -0,0 +1,12 @@ +@core +Feature: Surface Input - Spread Directions + + @core + Scenario: Spread Directions is displayed when Direction of Interest is selected + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Direction of Interest | + Then the following input paths are displayed: + | submodule | + | Spread Directions | \ No newline at end of file diff --git a/features/surface-input_spread-directions_direction-of-interest.feature b/features/surface-input_spread-directions_direction-of-interest.feature new file mode 100644 index 000000000..65a085d74 --- /dev/null +++ b/features/surface-input_spread-directions_direction-of-interest.feature @@ -0,0 +1,12 @@ +@core +Feature: Surface Input - Spread Directions -> Direction of Interest + + @core + Scenario: Direction of Interest is displayed when Direction of Interest is selected + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Direction of Interest | + Then the following input paths are displayed: + | submodule | group | + | Spread Directions | Direction of Interest | \ No newline at end of file diff --git a/features/surface-input_weather.feature b/features/surface-input_weather.feature new file mode 100644 index 000000000..9f993bfc5 --- /dev/null +++ b/features/surface-input_weather.feature @@ -0,0 +1,22 @@ +@core +Feature: Surface Input - Weather + + @core + Scenario: Weather is displayed when Probability of Ignition is selected + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Ignition | Probability of Ignition | + Then the following input paths are displayed: + | submodule | + | Weather | + + @core + Scenario: Weather is displayed when Probability of Ignition is selected + Given I have started a new Surface & Crown Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Ignition | Probability of Ignition | + Then the following input paths are displayed: + | submodule | + | Weather | diff --git a/features/surface-input_wind-and-slope.feature b/features/surface-input_wind-and-slope.feature new file mode 100644 index 000000000..c51349d37 --- /dev/null +++ b/features/surface-input_wind-and-slope.feature @@ -0,0 +1,49 @@ +@core +Feature: Surface Input - Wind and Slope + + @core + Scenario Outline: Wind and Slope is displayed with Surface outputs + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Wind and Slope | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + | Fire Behavior | Direction Mode | Direction of Interest | + | Fire Behavior | Direction Mode | Heading, Flanking, Backing | + | Fire Behavior | Surface Fire | Rate of Spread | + | Fire Behavior | Surface Fire | Flame Length | + | Fire Behavior | Surface Fire | Fireline Intensity | + | Spot | Maximum Spotting Distance | Burning Pile | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + | Size | Surface - Fire Size | Fire Area | + | Size | Surface - Fire Size | Fire Perimeter | + | Size | Surface - Fire Size | Length-to-Width Ratio | + | Size | Surface - Fire Size | Spread Distance | + + @core + Scenario Outline: Wind and Slope is displayed with Crown outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | + | Wind and Slope | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Spread Distance | + | Spot | Maximum Spotting Distance | Torching Trees | + | Spot | Maximum Spotting Distance | Active Crown Fire | diff --git a/features/surface-input_wind-and-slope_10-meter-wind-speed.feature b/features/surface-input_wind-and-slope_10-meter-wind-speed.feature new file mode 100644 index 000000000..0ce506011 --- /dev/null +++ b/features/surface-input_wind-and-slope_10-meter-wind-speed.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Wind and Slope -> 10-Meter Wind Speed + + @core + Scenario: 10-Meter Wind Speed is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | 10-Meter | + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | 10-Meter Wind Speed | \ No newline at end of file diff --git a/features/surface-input_wind-and-slope_20-foot-wind-speed.feature b/features/surface-input_wind-and-slope_20-foot-wind-speed.feature new file mode 100644 index 000000000..56ef961ed --- /dev/null +++ b/features/surface-input_wind-and-slope_20-foot-wind-speed.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Wind and Slope -> 20-Foot Wind Speed + + @core + Scenario: 20-Foot Wind Speed is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | 20-Foot | + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | 20-Foot Wind Speed | \ No newline at end of file diff --git a/features/surface-input_wind-and-slope_slope.feature b/features/surface-input_wind-and-slope_slope.feature new file mode 100644 index 000000000..cbcbc0866 --- /dev/null +++ b/features/surface-input_wind-and-slope_slope.feature @@ -0,0 +1,41 @@ +@core +Feature: Surface Input - Wind and Slope -> Slope + + @core + Scenario Outline: Slope is displayed with Surface outputs + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Slope | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + | Fire Behavior | Direction Mode | Heading, Flanking, Backing | + | Fire Behavior | Direction Mode | Direction of Interest | + | Size | Surface - Fire Size | Spread Distance | + | Size | Surface - Fire Size | Fire Area | + | Size | Surface - Fire Size | Fire Perimeter | + | Size | Surface - Fire Size | Length-to-Width Ratio | + + Scenario Outline: Slope is displayed with Crown outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Slope | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Spread Distance | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Active Crown Fire | Active Ratio | diff --git a/features/surface-input_wind-and-slope_wind-adjustment-factor.feature b/features/surface-input_wind-and-slope_wind-adjustment-factor.feature new file mode 100644 index 000000000..71246b099 --- /dev/null +++ b/features/surface-input_wind-and-slope_wind-adjustment-factor.feature @@ -0,0 +1,90 @@ +@core +Feature: Surface Input - Wind and Slope -> Wind Adjustment Factor + + @core + Scenario Outline: Wind Adjustment Factor is displayed when + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | 20-Foot | + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Wind Adjustment Factor | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + | Fire Behavior | Direction Mode | Heading, Flanking, Backing | + | Fire Behavior | Direction Mode | Direction of Interest | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + @core + Scenario Outline: Wind Adjustment Factor is displayed + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | 10-Meter | + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Wind Adjustment Factor | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + | Fire Behavior | Direction Mode | Heading, Flanking, Backing | + | Fire Behavior | Direction Mode | Direction of Interest | + | Spot | Maximum Spotting Distance | Wind-Driven Surface Fire | + + @core + Scenario Outline: Wind Adjustment Factor is displayed + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | 20-Foot | + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Wind Adjustment Factor | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Size | Crown - Fire Size | Spread Distance | + + @core + Scenario Outline: Wind Adjustment Factor is displayed + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | 10-Meter | + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Wind Adjustment Factor | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Fire Type | Active Crown Fire | Active Ratio | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Size | Crown - Fire Size | Spread Distance | diff --git a/features/surface-input_wind-and-slope_wind-adjustment-factor_wind-adjustment-factor---user-input.feature b/features/surface-input_wind-and-slope_wind-adjustment-factor_wind-adjustment-factor---user-input.feature new file mode 100644 index 000000000..a1e205264 --- /dev/null +++ b/features/surface-input_wind-and-slope_wind-adjustment-factor_wind-adjustment-factor---user-input.feature @@ -0,0 +1,16 @@ +@core +Feature: Surface Input - Wind and Slope -> Wind Adjustment Factor -> Wind Adjustment Factor - User Input + + @core + Scenario: Wind Adjustment Factor - User Input is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | 20-Foot | + | Wind and Slope | Wind Adjustment Factor | User Input | + Then the following input paths are displayed: + | submodule | group | value | + | Wind and Slope | Wind Adjustment Factor | Wind Adjustment Factor - User Input | \ No newline at end of file diff --git a/features/surface-input_wind-and-slope_wind-and-slope-are.feature b/features/surface-input_wind-and-slope_wind-and-slope-are.feature new file mode 100644 index 000000000..edd874b5d --- /dev/null +++ b/features/surface-input_wind-and-slope_wind-and-slope-are.feature @@ -0,0 +1,41 @@ +@core +Feature: Surface Input - Wind and Slope -> Wind and slope are + + @core + Scenario Outline: Wind and slope are is displayed with Surface outputs + Given I have started a new Surface Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Wind and slope are | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading, Flanking, Backing | + | Fire Behavior | Direction Mode | Direction of Interest | + | Fire Behavior | Direction Mode | Heading | + | Size | Surface - Fire Size | Spread Distance | + | Size | Surface - Fire Size | Fire Area | + | Size | Surface - Fire Size | Fire Perimeter | + | Size | Surface - Fire Size | Length-to-Width Ratio | + +Scenario Outline: Wind and slope are is displayed with Crown outputs + Given I have started a new Surface & Crown Worksheet in Guided Mode + When this output path is selected : : + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Wind and slope are | + + Examples: This scenario is repeated for each of these rows + | submodule | group | value | + | Fire Behavior | Fire Behavior | Rate of Spread | + | Fire Behavior | Fire Behavior | Flame Length | + | Fire Behavior | Fire Behavior | Fireline Intensity | + | Size | Crown - Fire Size | Fire Area | + | Size | Crown - Fire Size | Fire Perimeter | + | Size | Crown - Fire Size | Spread Distance | + | Fire Type | Transition to Crown Fire | Critical Surface Fireline Intensity | + | Fire Type | Transition to Crown Fire | Transition Ratio | + | Fire Type | Transition to Crown Fire | Critical Surface Flame Length | + | Fire Type | Active Crown Fire | Critical Crown Rate of Spread | + | Fire Type | Active Crown Fire | Active Ratio | diff --git a/features/surface-input_wind-and-slope_wind-and-slope-are_wind-direction.feature b/features/surface-input_wind-and-slope_wind-and-slope-are_wind-direction.feature new file mode 100644 index 000000000..9b41bd678 --- /dev/null +++ b/features/surface-input_wind-and-slope_wind-and-slope-are_wind-direction.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Wind and Slope -> Wind and slope are -> Wind Direction + + @core + Scenario: Wind Direction is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind and slope are | Not Aligned (Wind is >30° from upslope). | + Then the following input paths are displayed: + | submodule | group | value | + | Wind and Slope | Wind and slope are | Wind Direction | diff --git a/features/surface-input_wind-and-slope_wind-speed.feature b/features/surface-input_wind-and-slope_wind-speed.feature new file mode 100644 index 000000000..4a5330982 --- /dev/null +++ b/features/surface-input_wind-and-slope_wind-speed.feature @@ -0,0 +1,15 @@ +@core +Feature: Surface Input - Wind and Slope -> Wind Speed + + @core + Scenario: Wind Speed is displayed + Given I have started a new Surface Worksheet in Guided Mode + When these output paths are selected + | submodule | group | value | + | Fire Behavior | Direction Mode | Heading | + When these input paths are entered + | submodule | group | value | + | Wind and Slope | Wind Measured at: | Midflame (Eye Level) | + Then the following input paths are displayed: + | submodule | group | + | Wind and Slope | Wind Speed | \ No newline at end of file diff --git a/features/surface_and_crown.feature b/features/surface_and_crown.feature deleted file mode 100644 index b25260393..000000000 --- a/features/surface_and_crown.feature +++ /dev/null @@ -1,15 +0,0 @@ -Feature: Surface and Crown Worksheets - - Scenario: Probability of Ignition Output Selected - Given I have started a Surface & Crown Worksheet - When I select these outputs Submodule > Group > Output: - """ - - Fire Behavior > Ignition > Probability of Ignition - """ - Then the following input Submodule > Groups are displayed: - """ - - Fuel Moisture > Moisture Input Mode - - Weather > Air Temperature - - Weather > Fuel Shading From the Sun - """ - diff --git a/features/surface_only.feature b/features/surface_only.feature deleted file mode 100644 index f26594df2..000000000 --- a/features/surface_only.feature +++ /dev/null @@ -1,389 +0,0 @@ -Feature: Surface Only Worksheets - - Scenario: Fire Behavior Output Selected - Given I have started a Surface Worksheet - When I select these outputs Submodule > Group > Output: - """ - - Fire Behavior > Direction Mode > Heading - - Fire Behavior > Surface Fire > Rate of Spread - """ - Then the following input Submodule > Groups are displayed: - """ - - Fuel Model > Standard > Fuel Model - - Fuel Moisture > Moisture Input Mode - - Wind and Slope > Wind Speed - - Wind and Slope > Wind and slope are - - Wind and Slope > Slope - """ - - # - Wind and Slope > Wind measured at: @kenny this fails because Wind measured at: has a - # - trailing space in the dom and (extract-submodule-groups) trims this. - -# Feature: Mortality Only -# Scenario: Mortality Only Test -# Given I have started a Mortality Worksheet -# When I select the output "Rate of Spread" in the "Fire Behavior" submodule -# Then the following input Submodule > Groups are displayed: -# """ -# - Fuel Model -# - Fuel Moisture > Moisture Input Mode -# - Wind and Slope > Wind Measured at: -# - Wind and Slope > Wind Speed -# - Wind and Slope > Wind and Slope are: -# - Wind and Slope > Slope - # """ -# Scenario: Length-to-Width Output Selected -# Given I have started a Surface Worksheet -# When I select the output "Length-to-Width Ratio" in the "Size" submodule -# Then the following input Submodule > Groups are displayed: -# """ -# - Fuel Model -# - Fuel Moisture > Moisture Input Mode -# - Wind and Slope > Wind Measured at: -# - Wind and Slope > Wind Speed -# - Wind and Slope > Wind and Slope are: -# - Wind and Slope > Slope -# """ - -# Scenario: Size Outputs Selected -# Given I have started a Surface Worksheet -# When The size outputs below are selected: -# - Size > Fire Area -# - Size > Fire Perimeter -# - Size > Spread Distance -# Then the following input Submodule > Groups are displayed: -# """ -# - Fuel Model -# - Fuel Moisture > Moisture Input Mode -# - Wind and Slope > Wind Measured at: -# - Wind and Slope > Wind Speed -# - Wind and Slope > Wind and Slope are: -# - Wind and Slope > Slope -# - Size > Elapsed Time -# """ -# -# Scenario: Size Outputs Selected -# Given I have started a Surface Worksheet -# Then the following outputs are displayed: -# """ -# - Spot -> Burning Pile -# - Spot -> Wind-Driven Surface Fire -# """ -# Then and should be the only two options under Maximum Spotting Distance -# -# Given I have started a Surface Worksheet -# When Any outputs are selected, other than Burning Pile -# Then Maximum Spotting Distance: Burning Pile should be deactivated -# -# Given I have started a Surface Worksheet -# When Burning Pile is selected from Maximum Spotting Distance -# Then All other outputs should be deactivated and the ONLY inputs should -# be: -# - Wind and Slope -# - Wind Measured at: -# - Midflame should be deactivate and 20-Foot autoselected -# - Wind Speed -# - *No WAF* -# - *No Wind and Slope are* -# - *No Slope* -# - Spot -# - Downwind Canopy Cover -# - Downwind Canopy Height -# - Flame Height (from a Burning Bile) -# - Topography -# - Ridge-to-Valley Elevation Difference -# - Ridge-to-Valley Horizontal Distance (Dependent on Elevation -# Difference) -# - Spotting Source Location (Dependent on Elevation Difference) -# -# Given I have started a Surface Worksheet -# When Fire Behavior or Size is selected with Wind-Driven Surface Fire -# from Spot -# Then Fuel Model should be replaced with Wind Driven Fuel Models which -# only contain grass fuel models -# -# Given I have started a Surface Worksheet -# When Fire Behavior or Size is selected with Wind-Driven Surface Fire -# from Spot -# Then Surface Fire Flame Length should come from Surface and should not -# be an input -# -# Given I have started a Surface Worksheet -# When When Wind-Drive Surface fire is not run with Fire Behavior -# Then Only the inputs below are required -# - Wind and Slope -# - Wind Measured at: -# - Midflame should be deactivate and 20-Foot auto-selected -# - Wind Speed -# - *No WAF* -# - *No Wind and Slope are* -# - *No Slope* -# - Spot -# - Downwind Canopy Cover -# - Downwind Canopy Height -# - Topography -# - Ridge-to-Valley Elevation Difference -# - Ridge-to-Valley Horizontal Distance (Dependent on Elevation -# Difference) -# - Spotting Source Location (Dependent on Elevation Difference) -# - *Surface Fire Flame Length* -# -# Given I have started a Surface Worksheet -# When 0 is entered into Ridge-to-Valley Elevation Difference -# Then Ridge-to-Valley Horizontal Distance and Spotting Source Location -# should not be available inputs -# -# Given I have started a Surface Worksheet -# When A value greater than 0 is entered into Ridge-to-Valley Elevation -# Difference -# Then Ridge-to-Valley Horizontal Distance and Spotting Source Location -# should be required inputs -# -# Given I have started a Surface Worksheet -# When Direction of Interest is selected from Direction Mode -# Then The Wind/Slope/Spread Diagram should be automatically output on -# the Run Results -# -# Given I have started a Surface Worksheet -# When Direction of Interest is selected from Direction Mode -# Then The Direction of Spread should be automatically output on the Run -# Results. The Direction of Spread should be consisted with the Direction -# Mode selected (Heading or Heading Flanking Backing) -# -# Given I have started a Surface Worksheet -# When Heading OR Heading, Backing, Flanking, AND Wind and Slope are not -# aligned -# Then The Wind/Slope/Spread Diagram should be automatically output on -# the Run Results -# -# Given I have started a Surface Worksheet -# When Heading OR Heading, Backing, Flanking, AND Wind and Slope are not -# aligned -# Then The Direction of Spread should be automatically ouput on the Run -# Results. The Direction of Spread should be consisted with the Direction -# Mode selected (Heading or Heading Flanking Backing) -# -# Given I have started a Surface Worksheet -# When Maximum Spotting DIstance from a Burning Pile is run -# Then Firebrand Height from a Burning Pile should be automatically -# output -# * Surface and Crown -# -# Given I have started a Surface and Crown Worksheet -# When Surface and Crown are run together -# Then Heading should be automatically run for Direction Mode. *It should not be automatically selected because the user may not run Fire Behavior.* -# -# Given I have started a Surface and Crown Worksheet -# When Any output is selected, other than a Spot model -# Then Fire Type should be automatically selected as an output but it -# should not shown on the worksheet -# -# Given I have started a Surface and Crown Worksheet -# When Fire behavior has a selected output (RoS, FL, or FI) -# Then The following Submodules w/inputs are the ONLY required inputs -# - Fuel Model -# - Fuel Moisture -# - Moisture Input Mode -# - Appropriate Moisture Inputs -# - Wind and Slope -# - Wind Measured at: -# - Midflame should be deactivate and 20-Foot autoselected -# - Wind Speed -# - WAF -# - Wind and Slope are: -# - Slope -# - Calculations Options -# - Fuel Moisture -# - Foliar Moisture -# - Canopy Fuel -# - Canopy Base Height -# - Canopy Bulk Density -# - Canopy Height -# -# Given I have started a Surface and Crown Worksheet -# When Length-to-Width Ratio output in the Size submodule is selected -# Then The following Submodules w/inputs are the ONLY required inputs -# - Fuel Model -# - Fuel Moisture -# - Moisture Input Mode -# - Appropriate Moisture Inputs -# - Wind and Slope -# - Wind Measured at: -# - Midflame should be deactivate and 20-Foot autoselected -# - Wind Speed -# - WAF -# - WAF(if applicable) -# - Wind and Slope are: -# - Slope -# - Fuel Moisture -# - Foliar Moisture -# - Calculations Options -# - Canopy Fuel -# - Canopy Base Height -# - Canopy Bulk Density -# - Canopy Height -# -# Given I have started a Surface and Crown Worksheet -# When Any Fire Type output are selected -# Then The following Submodules w/inputs are the ONLY required inputs -# - Fuel Model -# - Fuel Moisture -# - Moisture Input Mode -# - Appropriate Moisture Inputs -# - Wind and Slope -# - Wind Measured at: -# - Midflame should be deactivate and 20-Foot autoselected -# - Wind Speed -# - WAF -# - WAF(if applicable) -# - Wind and Slope are: -# - Slope -# - Fuel Moisture -# - Foliar Moisture -# - Calculations Options -# - Canopy Fuel -# - Canopy Base Height -# - Canopy Bulk Density -# - Canopy Height -# -# Given I have started a Surface and Crown Worksheet -# When The size outputs below are selected: -# - Fire Area -# - Fire Perimeter -# - Spread Distance -# - (**Exclude Length-to-Width Ratio) -# Then The following Submodules w/inputs are the ONLY required inputs -# - Fuel Model -# - Fuel Moisture -# - Moisture Input Mode -# - Appropriate Moisture Inputs -# - Wind and Slope -# - Wind Measured at: -# - Wind Speed -# - WAF(if applicable) -# - Wind and Slope are: -# - Slope -# - Size -# - Elapsed Time -# -# Given I have started a Surface and Crown Worksheet -# When Surface and Crown are run together -# Then Only Torching Trees and Active Crown fire should be available options under Maximum Spotting Distance -# -# Given I have started a Surface and Crown Worksheet -# When Surface and Crown are run together -# Then Torching Tree and Active Crown fire should be able to both be run under Maximum Spotting Distance -# -# Given I have started a Surface and Crown Worksheet -# When Active Crown Fire is selected as an out, *WITHOUT Fire Behavior* -# Then The inputs below are required -# - Canopy Fuel -# - Canopy Height -# - Wind and Slope -# - Wind Measured at: -# - Midflame should be deactivate and 20-Foot auto-selected -# - Wind Speed -# - *No WAF* -# - *No Wind and Slope are* -# - *No Slope* -# - Spot -# - Topography -# - Ridge-to-Valley Elevation Difference -# - Ridge-to-Valley Horizontal Distance (Dependent on Elevation -# Difference) -# - Spotting Source Location (Dependent on Elevation Difference) -# - *Active Crown Fire Flame Length* -# -# Given I have started a Surface and Crown Worksheet -# When Active Crown Fire is selected as an output with Fire Behavior -# Then The inputs below are required -# - Canopy Fuel -# - Canopy Height -# - Wind and Slope -# - Wind Measured at: -# - Midflame should be deactivate and 20-Foot auto-selected -# - Wind Speed -# - *No WAF* -# - *No Wind and Slope are* -# - *No Slope* -# - Spot -# - Topography -# - Ridge-to-Valley Elevation Difference -# - Ridge-to-Valley Horizontal Distance (Dependent on Elevation -# Difference) -# - Spotting Source Location (Dependent on Elevation Difference) -# - *Active Crown Fire Flame Length* -# -# Given I have started a Surface and Crown Worksheet -# When Fire Behavior or Size is selected with Active Crown Fire from Spot -# Then Active Crown Fire Flame Length should come from Crown and should not be an input -# * Surface and Contain -# -# Given I have started a Surface and Contain Worksheet -# Then Spot should not be on worksheet -# -# Given I have started a Surface and Contain Worksheet -# Then Surface Fire Behavior and Size conditionals should be treated the same as Surface being run alone -# -# Given I have started a Surface and Contain Worksheet -# Then Heading in Fire Behavior's Direction Mode should be the only option available. Heading, Backing, and Flanking, and DIrection of Interest should be deactivated -# * Surface and Mortality -# -# Given I have started a Surface and Mortality Worksheet -# Then Heading and Heading Flanking, Backing in Fire Behavior's Direction Mode should be the only options available. -# And: Direction of Interest should be deactivated -# -# Given I have started a Surface and Mortality Worksheet -# Then There should be no Size output module -# And: There should be no Size input submodules -# -# Given I have started a Surface and Mortality Worksheet -# Then There should be no mortality output submodules because all outputs are automated based on species selected and their PoM equation -# -# Given I have started a Surface and Mortality Worksheet -# Then There should be no mortality output submodules because all outputs are automated based on species selected and their PoM equation -# -# Given I have started a Surface and Mortality Worksheet -# Then There should be no mortality output submodules because all outputs are automated based on species selected and their PoM equation -# -# Given I have started a Surface and Mortality Worksheet -# Then Flame Length is needed to calculate PoM so Surface Fire Behavior conditionals should be used to calculate Flame Length -# -# Given I have started a Surface and Mortality Worksheet -# Then PoM equation used should be based on the Mortality tree species used, see [[https://sig-gis.atlassian.net/browse/BHP1-839?atlOrigin=eyJpIjoiZTdjZDg4MDNhYTBlNDE2NDljZTRhZTEzNThlNDI5NzgiLCJwIjoiaiJ9][BHP1-839]] -# -# Given I have started a Surface and Mortality Worksheet -# Then DBH and Mortality Tree species are both required user inputs, regardless of PoM equation -# -# Given I have started a Surface and Mortality Worksheet -# Then Probability of Mortality is automatically calculated -# -# Given I have started a Surface and Mortality Worksheet -# Then Mortality Outputs should match the format in [[https://sig-gis.atlassian.net/browse/BHP1-926?atlOrigin=eyJpIjoiYTQwNWFjMmExZDE5NGNjYWI3NDYxNTNjY2MwMmIwMTAiLCJwIjoiaiJ9][ticket]] and [[https://usfs.box.com/s/u6uknqwzt751top5awzn0am4u4s8dkj3][table]] -# -# Given I have started a Surface and Crown Worksheet -# When The PoM equation used is Crown Scorch -# Then The user inputs below are required -# - Air Temp -# - MidFlame Windspeed or (20ft or 10m x WAF = Midflame Windspeed) -# - Canopy Height -# - Crown Ratio -# -# Given I have started a Surface and Crown Worksheet -# When The PoM equation used is Crown Scorch -# Then The calculated Flame Length needs to be used to calculate Scorch Height -# -# Given I have started a Surface and Crown Worksheet -# When The PoM equation used is Bark Char -# Then The calculated Flame Length is used to calculate Bark Char Height, Flame Length/1.8 -# -# Given I have started a Surface and Crown Worksheet -# When The PoM equation used is Crown Scorch -# Then Automated outputs that should be calculated including: -# - Crown Length Scorched -# - Crown Volume Scorched -# - Scorch Height -# -# Given I have started a Surface and Crown Worksheet -# When The PoM equation used is Bark Char -# Then Bark Char Height is an automated output that should be calculated include diff --git a/projects/behave_cms/src/cljs/behave_cms/components/conditionals/views.cljs b/projects/behave_cms/src/cljs/behave_cms/components/conditionals/views.cljs index 9fa29c426..5bbb357ab 100644 --- a/projects/behave_cms/src/cljs/behave_cms/components/conditionals/views.cljs +++ b/projects/behave_cms/src/cljs/behave_cms/components/conditionals/views.cljs @@ -351,6 +351,6 @@ [conditionals-graph parent-eid conditional-eid - cond-attr + :conditional/sub-conditionals :conditional/sub-conditional-operator]])]])) (sort-by :variable/name conditionals)))]])))) diff --git a/steps/Given.clj b/steps/Given.clj index bc7345e0e..6c4c37079 100644 --- a/steps/Given.clj +++ b/steps/Given.clj @@ -1,55 +1,15 @@ (ns Given - (:require - [cucumber.by :as by] - [cucumber.element :as e] - [cucumber.steps :refer [Given]] - [cucumber.webdriver :as w])) + (:require [cucumber.steps :refer [Given]] + [steps.worksheet :as ws])) -(def ^:private worksheet-modules - {[:surface] "Surface Only" - [:surface :contain] "Surface and Contain" - [:surface :crown] "Surface & Crown" - [:surface :mortality] "Surface and Mortality" - [:mortality] "Mortality Only"}) +(Given "I have started a new Surface Worksheet in Guided Mode" + (partial ws/start-worksheet [:surface])) -(defn- select-independent-worksheet - [modules {:keys [driver url]}] - (w/maximize driver) +(Given "I have started a new Surface & Mortality Worksheet in Guided Mode" + (partial ws/start-worksheet [:surface :mortality])) - (if (= "https://behave-dev.sig-gis.com" (w/execute-script! driver "window.location.href")) - (w/execute-script! driver "window.location.href = window.location.href") - (w/goto driver url)) +(Given "I have started a new Surface & Crown Worksheet in Guided Mode" + (partial ws/start-worksheet [:surface :crown])) - (let [wait (w/wait driver 5000)] - (.until wait (w/presence-of (by/css ".card__header")))) - - ;; Select Standard Workflow - (-> (e/find-el driver (by/attr= :text "Standard Workflow")) - (e/click!)) - - (-> (e/find-el driver (by/css ".button--highlight")) - (e/click!)) - - (Thread/sleep 1000) - ;; Select Surface Only worksheet - (-> (e/find-el driver (by/attr= :text (get worksheet-modules (or modules [:surface])))) - (e/click!)) - - (let [el (e/find-el driver (by/css ".button--highlight"))] - (w/execute-script! driver "arguments[0].scrollIntoView(true)" el)) - - (-> (e/find-el driver (by/css ".button--highlight")) - (e/click!)) - - (w/execute-script! driver "window.scrollTo(0,0)") - {:driver driver}) - -(Given "I have started a Surface Worksheet" (partial select-independent-worksheet [:surface])) - -(Given "I have started a Surface & Crown Worksheet" (partial select-independent-worksheet [:surface :crown])) - -(Given "I have started a Surface and Contain Worksheet" (partial select-independent-worksheet [:surface :contain])) - -(Given "I have started a Surface and Mortality Worksheet" (partial select-independent-worksheet [:surface :mortality])) - -(Given "I have started a Mortality Worksheet" (partial select-independent-worksheet [:mortality])) +(Given "I have started a new Surface & Contain Worksheet in Guided Mode" + (partial ws/start-worksheet [:surface :contain])) diff --git a/steps/Then.clj b/steps/Then.clj index 26d9fb515..0413e1e34 100644 --- a/steps/Then.clj +++ b/steps/Then.clj @@ -1,58 +1,10 @@ (ns Then - (:require - [clojure.string :as str] - [cucumber.element :as e] - [cucumber.by :as by] - [cucumber.webdriver :as w] - [cucumber.steps :refer [Then]])) + (:require [cucumber.steps :refer [Then]] + [steps.inputs :as inputs])) -(defn- extract-submodule-groups - [submodule-groups] - (-> submodule-groups - (str/replace "\"\"\"" "") - (str/split #"- ") - (->> (map str/trim) - (remove empty?) - (map #(str/split % #" > "))))) +(Then "the following input paths are displayed" + inputs/verify-input-groups-are-displayed) -(defn- select-submodule [driver submodule] - (-> (e/find-el driver (by/css ".wizard")) - (e/find-el (by/attr= :text submodule)) - (e/click!))) +(Then "the following input paths are NOT displayed" + inputs/verify-input-groups-not-displayed) -(defn- navigate-to-inputs [driver] - (-> (e/find-el driver (by/css ".wizard-header__io-tabs")) - (e/find-el (by/attr= :text "Inputs")) - (e/click!))) - -(defn- group-exits? [driver [submodule & groups]] - (select-submodule driver submodule) - (doall - (map #(let [wait (w/wait driver 300)] - (.until wait (w/presence-of-nested-elements - (by/css ".wizard-page__body") - (by/attr= :text %)))) - groups))) - -(Then "(?m)the following input Submodule > Groups are displayed: {submodule-groups}" - (fn [{:keys [driver]} submodule-groups] - (navigate-to-inputs driver) - (let [wait (w/wait driver 5000)] - (.until wait (w/presence-of (by/css ".wizard-page__body")))) - (let [submodule-groups (extract-submodule-groups submodule-groups)] - ;; incorrect-groups (filter (fn [[_submodule group]] (= "Slope" group)) submodule-groups)] - (doall (map (partial group-exits? driver) submodule-groups)) - (assert (pos? (count submodule-groups)))))) - -(comment - (count incorrect-groups) - (pr-str (map pr-str incorrect-groups))) - - -(comment - (do - (require '[cucumber.runner :as r] - '[cucumber.webdriver :as w]) - - (let [d r/driver-atom] - (e/find-el @d (by/attr= :text "Wind measured at: "))))) diff --git a/steps/When.clj b/steps/When.clj index cec07fc12..933dc1e26 100644 --- a/steps/When.clj +++ b/steps/When.clj @@ -1,63 +1,22 @@ (ns When - (:require - [cucumber.by :as by] - [cucumber.element :as e] - [cucumber.steps :refer [When]] - [clojure.string :as str] - [cucumber.runner :as r] - [cucumber.webdriver :as w])) + (:require [cucumber.steps :refer [When]] + [steps.outputs :as outputs] + [steps.inputs :as inputs])) -(defn- extract-submodule-groups - [submodule-groups] - (-> submodule-groups - (str/replace "\"\"\"" "") - (str/split #"- ") - (->> (map str/trim) - (remove empty?) - (map #(str/split % #" > "))))) +(When "these output paths are selected" + outputs/select-outputs) -(defn- select-submodule [driver submodule] - (-> (e/find-el driver (by/css ".wizard-header__submodules")) - (e/find-el (by/attr= :text submodule)) - (e/click!))) +(When "this output path is selected {submodule} : {group} : {value}" + outputs/select-output) -(defn- find-groups [driver groups] - (doseq [group groups] - (let [wait (w/wait driver 300)] - (.until wait (w/presence-of-nested-elements - (by/css ".wizard-group__header") - (by/attr= :text group)))))) +(When "these output paths are NOT selected" + outputs/verify-outputs-not-selected) -(defn- select-output [driver output] - (-> (e/find-el driver (by/css ".wizard-group__outputs")) - (e/find-el (by/attr= :text output)) - (e/click!))) +(When "these input paths are entered" + inputs/enter-inputs) -(defn- select-submodule-and-output [driver [submodule & groups]] - (select-submodule driver submodule) - (find-groups driver (butlast groups)) - (select-output driver (last groups))) +(When "this input path is entered {submodule} : {group} : {value}" + inputs/enter-input) -(defn- select-submodule-and-outputs - [{:keys [driver]} submodule-groups] - (let [wait (w/wait driver 5000)] - (.until wait (w/presence-of (by/css ".wizard")))) - (let [submodule-groups (extract-submodule-groups submodule-groups)] - (doseq [output submodule-groups] - (select-submodule-and-output driver output)) - {:driver driver})) - -(When "I select these outputs Submodule > Group > Output: {outputs}" select-submodule-and-outputs) - -(comment - (do - (require '[cucumber.runner :as r] - '[cucumber.webdriver :as w]) - - (let [d r/driver-atom] - (select-submodule @d "Fire Behavior")) - - (let [d r/driver-atom] - (select-submodule-and-output - @d - ["Fire Behavior" "Direction Mode" "Heading"])))) +(When "this input path is entered {submodule} : {group} : {subgroup} : {value}" + inputs/enter-input) diff --git a/steps/steps/helpers.clj b/steps/steps/helpers.clj new file mode 100644 index 000000000..b9db6d133 --- /dev/null +++ b/steps/steps/helpers.clj @@ -0,0 +1,490 @@ +(ns steps.helpers + (:require [cucumber.by :as by] + [cucumber.element :as e] + [cucumber.webdriver :as w] + [clojure.string :as str])) + +;;; ============================================================================= +;;; Parsing Utilities +;;; ============================================================================= + +(defn parse-step-data + "Converts a map `data` into a vector representing a path that follows the heirarchy order + submodule -> group -> subgroup -> value" + [data] + (map (fn [{:keys [submodule group subgroup value]}] + (cond-> [] + (seq submodule) (conj submodule) + (seq group) (conj group) + (seq subgroup) (conj subgroup) + (seq value) (conj value))) + data)) + +(defn numeric-or-multi-value? + "Check if a string looks like a numeric value or comma-separated values. + + Returns true if the string contains only digits, spaces, commas, decimal points, + and minus signs. This helps distinguish input values from field/option names. + + Args: + s - String to check + + Returns: + Boolean - true if it looks like a value to enter + + Examples: + (numeric-or-multi-value? \"1\") ; => true + (numeric-or-multi-value? \"3.14\") ; => true + (numeric-or-multi-value? \"1, 2, 3\") ; => true + (numeric-or-multi-value? \"10.5, 20\") ; => true + (numeric-or-multi-value? \"Individual Size Class\") ; => false" + [s] + (and (string? s) + (not (str/blank? s)) + (re-matches #"^[0-9.,\s-]+$" (str/trim s)))) + +;;; ============================================================================= +;;; Select Element by By +;;; ============================================================================= + +(defn selector->by + "Convert a selector map to a Selenium By object. + + This function provides the bridge between our map-based selector API + and Selenium's By objects for use in WebDriverWait conditions. + + Selector Types: + - :id - Find by element ID + - :css - Find by CSS selector + - :xpath - Find by XPath expression + - :tag - Find by tag name + - :class - Find by class name + - :text - Find by exact text content + - :name - Find by name attribute + + Args: + selector - Map with a single selector key/value pair + + Returns: + Selenium By object + + Throws: + ExceptionInfo if selector type is unknown + + Examples: + (selector->by {:id \"submit-button\"}) ; => By.id(\"submit-button\") + (selector->by {:css \".wizard-header\"}) ; => By.cssSelector(\".wizard-header\") + (selector->by {:text \"New Run\"}) ; => By with xpath for text + (selector->by {:tag :div}) ; => By.tagName(\"div\")" + [selector] + (cond + (:id selector) (by/id (:id selector)) + (:css selector) (by/css (:css selector)) + (:xpath selector) (by/xpath (:xpath selector)) + (:tag selector) (by/tag-name (name (:tag selector))) + (:class selector) (by/class-name (:class selector)) + (:text selector) (by/attr= :text (:text selector)) + (:name selector) (by/input-name (:name selector)) + :else (throw (ex-info "Unknown selector type" {:selector selector})))) + +;;; ============================================================================= +;;; Waiting Utilities +;;; ============================================================================= + +(defn wait-for-element-by-selector + "Wait for the wizard interface to be present (up to 300 miliseconds)." + [driver selector] + (let [wait (w/wait driver 2000)] + (.until wait (w/presence-of (selector->by selector))))) + +(defn wait-for-wizard + "Wait for the wizard interface to be present." + [driver] + (wait-for-element-by-selector driver {:css ".wizard"})) + +(defn wait-for-working-area + "Wait for the working area to be present." + [driver] + (wait-for-element-by-selector driver {:css ".working-area"})) + +(defn wait-for-nested-element + "Wait for a nested element to appear within a parent element. + + Args: + driver - WebDriver instance + parent-selector - Selector map for parent element (e.g., {:css \".wizard\"}) + text - Text content to search for in child element + timeout-ms - Maximum wait time in milliseconds + + Examples: + (wait-for-nested-element driver {:css \".wizard-group__header\"} \"Fire Behavior\" 300)" + [driver parent-selector text timeout-ms] + (let [wait (w/wait driver timeout-ms)] + (.until wait (w/presence-of-nested-elements + (selector->by parent-selector) + (selector->by {:text text}))))) + +(defn wait-for-groups + "Wait for groups to appear as properly nested elements in hierarchical order. + + This function verifies that groups form a parent-child chain in the DOM. + For example, if groups = [\"Fire Behavior\" \"Direction Mode\" \"Heading\"], + it ensures: + 1. \"Fire Behavior\" exists under .wizard-page__body + 2. \"Direction Mode\" is nested within \"Fire Behavior\" + 3. \"Heading\" is nested within \"Direction Mode\" + + Args: + driver - WebDriver instance + groups - Collection of group names in hierarchical order (parent to child) + + Example: + (wait-for-groups driver [\"parent-a\" \"parent-b\" \"parent-c\" \"last-child\"])" + [driver groups] + (when (seq groups) + (wait-for-nested-element driver + {:css ".wizard-page__body"} + (first groups) + 300) + (doseq [[parent child] (partition 2 1 groups)] + (let [wait (w/wait driver 300)] + (.until wait (w/presence-of-nested-elements + (selector->by {:text parent}) + (selector->by {:text child}))))))) + +;;; ============================================================================= +;;; Element Finding +;;; ============================================================================= + +(defn find-element + "Find an element using various selector strategies. + + This function provides a unified interface for finding elements using + different selector types. It delegates to selector->by for converting + the selector map to a Selenium By object. + + Selector Types: + - :id - Find by element ID + - :css - Find by CSS selector + - :xpath - Find by XPath expression + - :tag - Find by tag name + - :class - Find by class name + - :text - Find by exact text content + - :name - Find by name attribute + + Args: + driver - WebDriver instance + selector - Map with a single selector key/value pair + + Returns: + WebElement if found + + Throws: + NoSuchElementException if element not found + ExceptionInfo if selector type is unknown + + Examples: + (find-element driver {:id \"submit-button\"}) + (find-element driver {:css \".wizard-header\"}) + (find-element driver {:xpath \"//button[text()='Next']\"}) + (find-element driver {:tag :div}) + (find-element driver {:class \"button--highlight\"}) + (find-element driver {:text \"New Run\"}) + (find-element driver {:name \"username\"}) + + See also: + selector->by - For converting selectors to Selenium By objects" + [driver selector] + ;; (wait-for-element-by-selector driver selector) + (e/find-el driver (selector->by selector))) + +(defn find-input-by-label + "Find an input element (text field, radio, or dropdown) by its label text. + + This function searches for a label with the given text and returns the + associated input element. Works with text inputs, radio buttons, and dropdowns. + + Args: + driver - WebDriver instance + label-text - The label text to search for + + Returns: + WebElement of the input field + + Throws: + NoSuchElementException if label or input not found + + Examples: + (find-input-by-label driver \"1-h Fuel Moisture\") + (find-input-by-label driver \"Air Temperature\")" + [driver label-text] + (find-element driver {:text label-text})) + +;;; ============================================================================= +;;; Submodule Selection +;;; ============================================================================= + +(defn select-submodule-tab + "Select a submodule in the wizard header. + + Used primarily in the Outputs tab for selecting submodules." + [driver submodule] + (-> (find-element driver {:css ".wizard-header__submodules"}) + (find-element {:text submodule}) + (e/click!)) + (wait-for-wizard driver)) + +;;; ============================================================================= +;;; Output Selection +;;; ============================================================================= + +(defn select-output + "Select an output in the wizard outputs section. + + Args: + driver - WebDriver instance + output - Name of the output to select" + [driver output] + (-> (find-element driver {:css ".wizard-group__outputs"}) + (find-element {:text output}) + (e/click!))) + +;;; ============================================================================= +;;; Button Operations +;;; ============================================================================= + +(defn click-highlighted-button + "Click the highlighted button in the current view. + + This is typically the primary action button (e.g., Next, Finish)." + [driver] + (-> (find-element driver {:css ".button--highlight"}) + (e/click!))) + +(defn click-button-with-text + "Click a button with specific text content. + + Args: + driver - WebDriver instance + text - Text content of the button to click" + [driver text] + (-> (find-element driver {:text text}) + (e/click!))) + +;;; ============================================================================= +;;; Input Operations +;;; ============================================================================= + +(defn enter-text-value + "Enter a value into a text input field. + + This function finds the input field by searching for text content, + then finding the nearest input element. + + Args: + driver - WebDriver instance + label-text - The label text of the input field + value - The value to enter (string, can be comma-separated) + + Examples: + (enter-text-value driver \"1-h Fuel Moisture\" \"1\") + (enter-text-value driver \"Air Temperature\" \"77\") + (enter-text-value driver \"Wind Speed\" \"5, 10, 15\")" + [driver label-text value] + ;; Use XPath to find input that's near any element containing the label text + ;; This is more flexible than requiring a