O:60:"SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult":7:{s:72:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult interfaces";a:0:{}s:69:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult classes";a:1:{s:42:"BuyerKiosk\Analytics\Models\MomentumSignal";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Class_":10:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ name";s:14:"MomentumSignal";s:68:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ namespacedName";s:42:"BuyerKiosk\Analytics\Models\MomentumSignal";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ namespace";s:27:"BuyerKiosk\Analytics\Models";s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ file";s:104:"/Users/rvanvuren/Projects/buyerkiosk-web/userfrosting/src/BuyerKiosk/Analytics/Models/MomentumSignal.php";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ startLine";i:15;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ endLine";i:402;s:65:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ parentClass";N;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ interfaces";a:0:{}s:60:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ traits";a:0:{}s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ methods";a:21:{s:11:"__construct";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:11:"__construct";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:78;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:114;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";E:63:"SebastianBergmann\CodeCoverage\StaticAnalysis\Visibility:Public";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:189:"__construct(string $category, DateTime $date, int $itemsSold, ?float $ema12, ?float $ema26, ?float $macdLine, ?float $signalLine, ?float $histogram, string $signal, ?string $crossoverEvent)";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:4;}s:7:"fromRow";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:7:"fromRow";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:122;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:136;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:25:"fromRow(array $row): self";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:6;}s:11:"getCategory";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:11:"getCategory";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:143;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:146;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:21:"getCategory(): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:7:"getDate";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:7:"getDate";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:153;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:156;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:19:"getDate(): DateTime";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:12:"getItemsSold";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:12:"getItemsSold";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:163;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:166;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:19:"getItemsSold(): int";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:8:"getEma12";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:8:"getEma12";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:173;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:176;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:18:"getEma12(): ?float";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:8:"getEma26";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:8:"getEma26";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:183;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:186;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:18:"getEma26(): ?float";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:11:"getMacdLine";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:11:"getMacdLine";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:193;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:196;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:21:"getMacdLine(): ?float";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:13:"getSignalLine";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:13:"getSignalLine";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:203;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:206;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:23:"getSignalLine(): ?float";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:12:"getHistogram";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:12:"getHistogram";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:213;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:216;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:22:"getHistogram(): ?float";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:9:"getSignal";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:9:"getSignal";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:223;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:226;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:19:"getSignal(): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:17:"getCrossoverEvent";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:17:"getCrossoverEvent";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:233;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:236;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:28:"getCrossoverEvent(): ?string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:17:"getSignalStrength";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:17:"getSignalStrength";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:243;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:253;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:27:"getSignalStrength(): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:7;}s:12:"isActionable";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:12:"isActionable";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:262;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:265;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:20:"isActionable(): bool";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:17:"getRecommendation";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:17:"getRecommendation";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:272;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:283;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:27:"getRecommendation(): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:5;}s:9:"isBullish";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:9:"isBullish";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:290;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:293;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:17:"isBullish(): bool";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:9:"isBearish";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:9:"isBearish";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:300;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:303;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:17:"isBearish(): bool";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:8:"getColor";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:8:"getColor";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:310;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:320;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:18:"getColor(): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:7;}s:7:"toArray";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:7:"toArray";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:327;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:345;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:16:"toArray(): array";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:6;}s:14:"classifySignal";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:14:"classifySignal";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:355;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:368;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:40:"classifySignal(float $histogram): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:5;}s:15:"detectCrossover";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:15:"detectCrossover";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:379;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:401;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:100:"detectCrossover(?float $prevMacd, ?float $prevSignal, ?float $currMacd, ?float $currSignal): ?string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:9;}}}}s:68:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult traits";a:0:{}s:71:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult functions";a:0:{}s:73:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult linesOfCode";O:57:"SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode":3:{s:70:" SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode linesOfCode";i:403;s:77:" SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode commentLinesOfCode";i:157;s:80:" SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode nonCommentLinesOfCode";i:246;}s:77:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult executableLines";a:99:{i:91;i:21;i:94;i:23;i:92;i:23;i:93;i:23;i:98;i:24;i:101;i:26;i:99;i:26;i:100;i:26;i:104;i:27;i:105;i:28;i:106;i:29;i:107;i:30;i:108;i:31;i:109;i:32;i:110;i:33;i:111;i:34;i:112;i:35;i:113;i:36;i:124;i:37;i:125;i:37;i:126;i:37;i:127;i:37;i:128;i:37;i:129;i:37;i:130;i:37;i:131;i:37;i:132;i:37;i:133;i:37;i:134;i:37;i:135;i:37;i:145;i:38;i:155;i:39;i:165;i:40;i:175;i:41;i:185;i:42;i:195;i:43;i:205;i:44;i:215;i:45;i:225;i:46;i:235;i:47;i:245;i:48;i:246;i:49;i:247;i:50;i:248;i:51;i:249;i:52;i:250;i:53;i:251;i:54;i:252;i:48;i:264;i:55;i:274;i:56;i:275;i:57;i:278;i:58;i:279;i:59;i:280;i:60;i:281;i:61;i:282;i:58;i:292;i:62;i:302;i:63;i:312;i:64;i:313;i:65;i:314;i:66;i:315;i:67;i:316;i:68;i:317;i:69;i:318;i:70;i:319;i:64;i:329;i:71;i:330;i:71;i:331;i:71;i:332;i:71;i:333;i:71;i:334;i:71;i:335;i:71;i:336;i:71;i:337;i:71;i:338;i:71;i:339;i:71;i:340;i:71;i:341;i:71;i:342;i:71;i:343;i:71;i:344;i:71;i:357;i:72;i:358;i:73;i:359;i:74;i:360;i:75;i:361;i:76;i:362;i:77;i:363;i:78;i:364;i:79;i:366;i:80;i:385;i:81;i:386;i:82;i:387;i:83;i:391;i:84;i:392;i:85;i:396;i:86;i:397;i:87;i:400;i:88;}s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult ignoredLines";a:1:{i:0;i:15;}}