Soil erosionSoil erosion is the denudation or wearing away of the upper layer of soil. It is a form of soil degradation. This natural process is caused by the dynamic activity of erosive agents, that is, water, ice (glaciers), snow, air (wind), plants, and animals (including humans). In accordance with these agents, erosion is sometimes divided into water erosion, glacial erosion, snow erosion, wind (aeolean) erosion, zoogenic erosion and anthropogenic erosion such as tillage erosion.
Type systemIn computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating point, string) to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term.
Type safetyIn computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors. Type safety is sometimes alternatively considered to be a property of facilities of a computer language; that is, some facilities are type-safe and their usage will not result in type errors, while other facilities in the same language may be type-unsafe and a program using them may encounter type errors.
Type theoryIn mathematics, logic, and computer science, a type theory is the formal presentation of a specific type system, and in general, type theory is the academic study of type systems. Some type theories serve as alternatives to set theory as a foundation of mathematics. Two influential type theories that were proposed as foundations are Alonzo Church's typed λ-calculus and Per Martin-Löf's intuitionistic type theory. Most computerized proof-writing systems use a type theory for their foundation, a common one is Thierry Coquand's Calculus of Inductive Constructions.
Data typeIn computer science and computer programming, a data type (or simply type) is a collection or grouping of data values, usually specified by a set of possible values, a set of allowed operations on these values, and/or a representation of these values as machine types. A data type specification in a program constrains the possible values that an expression, such as a variable or a function call, might take. On literal data, it tells the compiler or interpreter how the programmer intends to use the data.
Type inferenceType inference refers to the automatic detection of the type of an expression in a formal language. These include programming languages and mathematical type systems, but also natural languages in some branches of computer science and linguistics. Types in a most general view can be associated to a designated use suggesting and restricting the activities possible for an object of that type. Many nouns in language specify such uses. For instance, the word leash indicates a different use than the word line.
Unit testingIn computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures—are tested to determine whether they are fit for use. It is a standard step in development and implementation approaches such as Agile. Before unit testing, capture and replay testing tools were the norm. In 1997, Kent Beck and Erich Gamma developed and released JUnit, a unit test framework that became popular with Java developers.
Test caseIn software engineering, a test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise a particular program path or to verify compliance with a specific requirement. Test cases underlie testing that is methodical rather than haphazard. A battery of test cases can be built to produce the desired coverage of the software being tested.
Type conversionIn computer science, type conversion, type casting, type coercion, and type juggling are different ways of changing an expression from one data type to another. An example would be the conversion of an integer value into a floating point value or its textual representation as a string, and vice versa. Type conversions can take advantage of certain features of type hierarchies or data representations.
Test automationIn software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.
ErosionErosion is the action of surface processes (such as water flow or wind) that removes soil, rock, or dissolved material from one location on the Earth's crust and then transports it to another location where it is deposited. Erosion is distinct from weathering which involves no movement. Removal of rock or soil as clastic sediment is referred to as physical or mechanical erosion; this contrasts with chemical erosion, where soil or rock material is removed from an area by dissolution.
Dependent typeIn computer science and logic, a dependent type is a type whose definition depends on a value. It is an overlapping feature of type theory and type systems. In intuitionistic type theory, dependent types are used to encode logic's quantifiers like "for all" and "there exists". In functional programming languages like Agda, ATS, Coq, F*, Epigram, and Idris, dependent types help reduce bugs by enabling the programmer to assign types that further restrain the set of possible implementations.
SoilSoil, also commonly referred to as earth, is a mixture of organic matter, minerals, gases, liquids, and organisms that together support life of plants and soil organisms. Some scientific definitions distinguish dirt from soil by restricting the former term specifically to displaced soil. Soil consists of a solid phase of minerals and organic matter (the soil matrix), as well as a porous phase that holds gases (the soil atmosphere) and water (the soil solution). Accordingly, soil is a three-state system of solids, liquids, and gases.
Regression testingRegression testing (rarely, non-regression testing) is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change. If not, that would be called a regression. Changes that may require regression testing include bug fixes, software enhancements, changes, and even substitution of electronic components (hardware). As regression test suites tend to grow with each found defect, test automation is frequently involved.
Integration testingIntegration testing (sometimes called integration and testing, abbreviated I&T) is the phase in software testing in which the whole software module is tested or if it consists of multiple software modules they are combined and then tested as a group. Integration testing is conducted to evaluate the compliance of a system or component with specified functional requirements. It occurs after unit testing and before system testing.
Environmental remediationEnvironmental remediation deals with the removal of pollution or contaminants from environmental media such as soil, groundwater, sediment, or surface water. Remedial action is generally subject to an array of regulatory requirements, and may also be based on assessments of human health and ecological risks where no legislative standards exist, or where standards are advisory. In the United States, the most comprehensive set of Preliminary Remediation Goals (PRGs) is from the Environmental Protection Agency (EPA) Regional Screening Levels (RSLs).
Soil ecologySoil ecology is the study of the interactions among soil organisms, and between biotic and abiotic aspects of the soil environment. It is particularly concerned with the cycling of nutrients, formation and stabilization of the pore structure, the spread and vitality of pathogens, and the biodiversity of this rich biological community. Soil is made up of a multitude of physical, chemical, and biological entities, with many interactions occurring among them. Soil is a variable mixture of broken and weathered minerals and decaying organic matter.
Soil moistureSoil moisture is the water content of the soil. It can be expressed in terms of volume or weight. Soil moisture measurement can be based on in situ probes (e.g., capacitance probes, neutron probes) or remote sensing methods. Water that enters a field is removed from a field by runoff, drainage, evaporation or transpiration.
Soil carbonSoil carbon is the solid carbon stored in global soils. This includes both soil organic matter and inorganic carbon as carbonate minerals. It is vital to the soil capacity in our ecosystem. Soil carbon is a carbon sink in regard to the global carbon cycle, playing a role in biogeochemistry, climate change mitigation, and constructing global climate models. Natural variation such as organisms and time has affected the management of carbon in the soils. The major influence has been that of human activities which has caused a massive loss of soil organic carbon.
Groundwater remediationGroundwater remediation is the process that is used to treat polluted groundwater by removing the pollutants or converting them into harmless products. Groundwater is water present below the ground surface that saturates the pore space in the subsurface. Globally, between 25 per cent and 40 per cent of the world's drinking water is drawn from boreholes and dug wells. Groundwater is also used by farmers to irrigate crops and by industries to produce everyday goods.