/**
  * Converts object to array
  *
  * @return array
  */
 public function asArray()
 {
     if ($this->_storeManager->getStore()->getBaseCurrency() && $this->_storeManager->getStore()->getCurrentCurrency()) {
         $currencyFilter = $this->_storeManager->getStore()->getCurrentCurrency()->getFilter();
         $currencyFilter->setRate($this->_storeManager->getStore()->getBaseCurrency()->getRate($this->_storeManager->getStore()->getCurrentCurrency()));
     } elseif ($this->_storeManager->getStore()->getDefaultCurrency()) {
         $currencyFilter = $this->_storeManager->getStore()->getDefaultCurrency()->getFilter();
     } else {
         $currencyFilter = new \Magento\Framework\Filter\Sprintf('%s', 2);
     }
     $rates = [];
     $allRates = $this->getAllRates();
     foreach ($allRates as $rate) {
         $rates[$rate->getCarrier()]['title'] = $rate->getCarrierTitle();
         $rates[$rate->getCarrier()]['methods'][$rate->getMethod()] = ['title' => $rate->getMethodTitle(), 'price' => $rate->getPrice(), 'price_formatted' => $currencyFilter->filter($rate->getPrice())];
     }
     return $rates;
 }
 public function testFilter()
 {
     $sprintfFilter = new \Magento\Framework\Filter\Sprintf('Formatted value: "%s"', 2, ',', ' ');
     $this->assertEquals('Formatted value: "1 234,57"', $sprintfFilter->filter(1234.56789));
 }