Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tcs;
- import java.util.Locale
- import org.joda.time.DateTime
- import org.joda.time.format.{DateTimeFormat, DateTimeFormatter}
- import org.json4s.JsonAST.JObject
- import org.json4s.native.JsonParser
- import org.scalatest.FlatSpec
- import ru.yandex.verba.core.util.VerbaUtils
- import org.json4s.JsonAST._
- import org.json4s.jackson.JsonMethods._
- import ru.yandex.verba.core.util.JsonUtils._
- import scala.io.Source
- /**
- * Author: Evgeny Vanslov (evans@yandex-team.ru)
- * Created: 24.07.14
- */
- class TcsTest extends FlatSpec {
- "" should "General billing info" in {
- case class Operation(descr: String, mcc: Int, amount: Double, cashback: Double, date: DateTime) {
- def returned = amount * cashback / 100.0
- override def toString: String = s"$returned $descr $mcc $amount $cashback $date"
- }
- val json = JsonParser.parse(Source.fromFile("errors.json").getLines().mkString)
- val operations = (json \ "payload").children map {
- v =>
- val amount = (v \ "accountAmount" \ "value").extract[Double]
- val cashback = (v \ "cashback").extract[Double]
- val descr = (v \ "description").extract[String]
- val mcc = (v \ "mcc").extract[Int]
- val time = (v \ "operationTime" \ "milliseconds").extract[Long]
- Operation(descr, mcc, amount, cashback, new DateTime(time))
- }
- val parse = DateTime.parse("13.07.2014", DateTimeFormat.forPattern("dd.MM.yyyy").withLocale(Locale.US))
- val forReturnOperations = operations.filter(_.date.isBefore(parse)).filter(_.returned > 0).sortBy(_.returned)
- forReturnOperations.foreach(println)
- println(forReturnOperations.map(_.returned).sum)
- println(operations.size)
- }
- }
Add Comment
Please, Sign In to add comment