/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠThe ĠHy ve Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . radar base . output Ċ Ċ import Ġorg . apache . avro . Schema Builder Ċ import Ġorg . apache . avro . generic . Generic Record Builder Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . radar base . output . path . Observation Key Path Factory Ċ import Ġorg . radar base . output . util . Time Util . getDate Ċ Ċ class ĠRad ar Hdfs Re structure Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Hour Timestamp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠOb servation Key Path Factory () ĊĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime : ĠLong Ġ= Ġ 1 4 9 3 7 1 1 1 7 5 Ġ// ĠTue ĠMay ĠĠ 2 Ġ 0 7 : 4 6 : 1 5 ĠUTC Ġ 2 0 1 7 ĊĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= Ġ( currentTime Ġ- Ġ 3 6 0 0 ) Ġ* Ġ 1 0 0 0 L ĊĊĠĠĠĠĠĠĠ Ġval Ġkey Schema Ġ= ĠSchema Builder . record (" value "). fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" start "). type (" long "). no Default () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĠĠĠĠĠĠĠ Ġval Ġkey Field Ġ= ĠGeneric Record Builder ( key Schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" start ", ĠstartTime ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġvalue Schema 1 Ġ= ĠSchema Builder . record (" value "). fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" time "). type (" double "). no Default () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĠĠĠĠĠĠĠ Ġval Ġvalue Field 1 Ġ= ĠGeneric Record Builder ( value Schema 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" time ", ĠcurrentTime . toDouble ()). build () ĊĊĠĠĠĠĠĠĠ Ġvar Ġdate Ġ= Ġget Date ( key Field , Ġvalue Field 1 ) ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġfactory . getTime Bin ( date ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 1 7 0 5 0 2 _ 0 7 0 0 ", Ġresult ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvalue Schema 2 Ġ= ĠSchema Builder . record (" value "). fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" a "). type (" double "). no Default () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĠĠĠĠĠĠĠ Ġval Ġvalue Field 2 Ġ= ĠGeneric Record Builder ( value Schema 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" a ", Ġ 0 . 1 ). build () ĊĠĠĠĠĠĠĠ Ġdate Ġ= Ġget Date ( key Field , Ġvalue Field 2 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġfactory . getTime Bin ( date ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 1 7 0 5 0 2 _ 0 6 0 0 ", Ġresult ) ĊĠĠĠ Ġ} Ċ } Ċ