public function provideVersionsToCompare()
 {
     $retval = [];
     foreach (SemanticVersionDatasets::getAlwaysLessThanDataset() as $data) {
         $retval[] = [ParseSemanticVersion::from($data[0]), ParseSemanticVersion::from($data[1]), CompareTwoNumbers::A_IS_LESS];
     }
     foreach (SemanticVersionDatasets::getAlwaysGreaterThanDataset() as $data) {
         $retval[] = [ParseSemanticVersion::from($data[0]), ParseSemanticVersion::from($data[1]), CompareTwoNumbers::A_IS_GREATER];
     }
     foreach (SemanticVersionDatasets::getAlwaysEqualDataset() as $data) {
         $retval[] = [ParseSemanticVersion::from($data[0]), ParseSemanticVersion::from($data[1]), CompareTwoNumbers::BOTH_ARE_EQUAL];
     }
     return $retval;
 }
 public function provideIsNotBlacklistedDataset()
 {
     $retval = [];
     foreach (SemanticVersionDatasets::getAlwaysEqualDataset() as $dataset) {
         $dataset[] = false;
         $retval[] = $dataset;
     }
     foreach (SemanticVersionDatasets::getAlwaysLessThanDataset() as $dataset) {
         $dataset[] = true;
         $retval[] = $dataset;
     }
     foreach (SemanticVersionDatasets::getAlwaysGreaterThanDataset() as $dataset) {
         $dataset[] = true;
         $retval[] = $dataset;
     }
     return $retval;
 }
 public function provideEqualityDataset()
 {
     $retval = [];
     foreach (SemanticVersionDatasets::getAlwaysEqualDataset() as $dataset) {
         $dataset[] = true;
         $retval[] = $dataset;
     }
     foreach (SemanticVersionDatasets::getNeverEqualDataset() as $dataset) {
         $dataset[] = false;
         $retval[] = $dataset;
     }
     return $retval;
 }
 public function provideIsCompatibleDataset()
 {
     $retval = [];
     foreach (SemanticVersionDatasets::getAlwaysApproximatelyEqualDataset() as $dataset) {
         $dataset[] = true;
         $retval[] = $dataset;
     }
     foreach (SemanticVersionDatasets::getAlwaysEqualDataset() as $dataset) {
         $dataset[] = true;
         $retval[] = $dataset;
     }
     foreach (SemanticVersionDatasets::getAlwaysLessThanDataset() as $dataset) {
         $dataset[] = false;
         $retval[] = $dataset;
     }
     foreach (SemanticVersionDatasets::getNeverCompatibleDataset() as $dataset) {
         $dataset[] = false;
         $retval[] = $dataset;
     }
     return $retval;
 }
 public function provideVersionsToCompare()
 {
     $retval = [];
     foreach (SemanticVersionDatasets::getAlwaysLessThanDataset() as $data) {
         $data[] = CompareTwoNumbers::A_IS_LESS;
         $retval[] = $data;
     }
     foreach (SemanticVersionDatasets::getAlwaysEqualDataset() as $data) {
         $data[] = CompareTwoNumbers::BOTH_ARE_EQUAL;
         $retval[] = $data;
     }
     foreach (SemanticVersionDatasets::getAlwaysGreaterThanDataset() as $data) {
         $data[] = CompareTwoNumbers::A_IS_GREATER;
         $retval[] = $data;
     }
     return $retval;
 }
 public function provideBadVersionNumbers()
 {
     return SemanticVersionDatasets::getBadVersionNumberDataset();
 }
 public function provideVersionNumbersWithoutBuildNumbers()
 {
     // we'll use the full version number data set
     $retval = [];
     foreach (SemanticVersionDatasets::getVersionNumberDataset() as $dataset) {
         if (!isset($dataset[1]["build"])) {
             $retval[] = [$dataset[0]];
         }
     }
     // all done
     return $retval;
 }
 public function provideVersionRangesThatNeverMatch()
 {
     $rawData = [[">1.0,<2.0,!1.5.6", "1.5.6", false], ["~1.4,!1.5.6", "1.3.9", false], ["~1.4,!1.5.6", "1.5.6", false], ["~1.0,!1.5.6", "2.0.0-alpha-1", false], ["^1.4.9,!1.5.6", "1.4.8", false], ["^1.4.9,!1.5.6", "1.5.6", false], ["^1.4.9,!1.5.6", "2.0.0-alpha-1", false]];
     $retval = [];
     foreach ($rawData as $dataset) {
         $versions = SemanticVersionDatasets::getVersionVariations($dataset[1]);
         foreach ($versions as $version) {
             $retval[] = [$dataset[0], $version, $dataset[2]];
         }
     }
     return $retval;
 }
 public function provideExpressionsToTest()
 {
     $rawData = ComparisonExpressionDatasets::getExpressionsToEvaluateWithVersionsToMatch();
     $retval = [];
     foreach ($rawData as $dataset) {
         $expression = $dataset[0] . ' ' . $dataset[1];
         $versions = SemanticVersionDatasets::getVersionVariations($dataset[2]);
         foreach ($versions as $version) {
             $retval[] = [$expression, $version, $dataset[3]];
         }
     }
     return $retval;
 }
 public function provideIsPreReleaseOfDataset()
 {
     $retval = [];
     foreach (SemanticVersionDatasets::getAlwaysPreReleaseDataset() as $dataset) {
         $dataset[] = true;
         $retval[] = $dataset;
     }
     foreach (SemanticVersionDatasets::getNeverPreReleaseDataset() as $dataset) {
         $dataset[] = false;
         $retval[] = $dataset;
     }
     return $retval;
 }