rapids/dev/developers/test-cases/index.html

3904 lines
87 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://www.rapids.science/dev/developers/test-cases/">
<link rel="icon" href="../../img/logo.png">
<meta name="generator" content="mkdocs-1.2.3, mkdocs-material-7.1.6+insiders-2.9.1">
<title>Test cases - RAPIDS</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.92048cb8.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.73e53a79.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
<style>:root{--md-text-font-family:"Roboto";--md-code-font-family:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../stylesheets/extra.css">
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="blue">
<script>function __scope(t,e="../.."){return new URL(e,location).pathname+"."+t}function __get(t,e=localStorage,n){return JSON.parse(e.getItem(__scope(t,n)))}function __set(t,e,n=localStorage,o){try{n.setItem(__scope(t,o),JSON.stringify(e))}catch(t){}}</script>
<script>var palette=__get("__palette");if(palette&&"object"==typeof palette.color)for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#test-cases" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-component="outdated" hidden>
<aside class="md-banner md-banner--warning">
<div class="md-banner__inner md-grid md-typeset">
You're not viewing the latest stable version of RAPIDS.
<a href="https://rapids.science/latest">
<strong> Click here to go to latest. </strong>
</a>
</div>
<script>var el=document.querySelector("[data-md-component=outdated]"),outdated=__get("__outdated",sessionStorage);!0===outdated&&el&&(el.hidden=!1)</script>
</aside>
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="RAPIDS" class="md-header__button md-logo" aria-label="RAPIDS" data-md-component="logo">
<img src="../../img/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
RAPIDS
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Test cases
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="blue" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3z"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="blue" data-md-color-accent="blue" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 10a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m10-3a5 5 0 0 1 5 5 5 5 0 0 1-5 5H7a5 5 0 0 1-5-5 5 5 0 0 1 5-5h10M7 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3h10a3 3 0 0 0 3-3 3 3 0 0 0-3-3H7z"/></svg>
</label>
</form>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/carissalow/rapids/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
carissalow/rapids
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="RAPIDS" class="md-nav__button md-logo" aria-label="RAPIDS" data-md-component="logo">
<img src="../../img/logo.png" alt="logo">
</a>
RAPIDS
</label>
<div class="md-nav__source">
<a href="https://github.com/carissalow/rapids/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
carissalow/rapids
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
Home
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../workflow-examples/minimal/" class="md-nav__link">
Minimal Example
</a>
</li>
<li class="md-nav__item">
<a href="../../citation/" class="md-nav__link">
Citation
</a>
</li>
<li class="md-nav__item">
<a href="../../contributing/" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6">
Setup
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Setup" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Setup
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../setup/installation/" class="md-nav__link">
Installation
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/configuration/" class="md-nav__link">
Configuration
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/execution/" class="md-nav__link">
Execution
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7">
Data Streams
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Data Streams" data-md-level="1">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Data Streams
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../datastreams/data-streams-introduction/" class="md-nav__link">
Introduction
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_2" type="checkbox" id="__nav_7_2" >
<label class="md-nav__link" for="__nav_7_2">
Phone
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Phone" data-md-level="2">
<label class="md-nav__title" for="__nav_7_2">
<span class="md-nav__icon md-icon"></span>
Phone
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../datastreams/aware-mysql/" class="md-nav__link">
aware_mysql
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/aware-csv/" class="md-nav__link">
aware_csv
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/aware-influxdb/" class="md-nav__link">
aware_influxdb (beta)
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/mandatory-phone-format/" class="md-nav__link">
Mandatory Phone Format
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_3" type="checkbox" id="__nav_7_3" >
<label class="md-nav__link" for="__nav_7_3">
Fitbit
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Fitbit" data-md-level="2">
<label class="md-nav__title" for="__nav_7_3">
<span class="md-nav__icon md-icon"></span>
Fitbit
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../datastreams/fitbitjson-mysql/" class="md-nav__link">
fitbitjson_mysql
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/fitbitjson-csv/" class="md-nav__link">
fitbitjson_csv
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/fitbitparsed-mysql/" class="md-nav__link">
fitbitparsed_mysql
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/fitbitparsed-csv/" class="md-nav__link">
fitbitparsed_csv
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/mandatory-fitbit-format/" class="md-nav__link">
Mandatory Fitbit Format
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_4" type="checkbox" id="__nav_7_4" >
<label class="md-nav__link" for="__nav_7_4">
Empatica
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Empatica" data-md-level="2">
<label class="md-nav__title" for="__nav_7_4">
<span class="md-nav__icon md-icon"></span>
Empatica
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../datastreams/empatica-zip/" class="md-nav__link">
empatica_zip
</a>
</li>
<li class="md-nav__item">
<a href="../../datastreams/mandatory-empatica-format/" class="md-nav__link">
Mandatory Empatica Format
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../datastreams/add-new-data-streams/" class="md-nav__link">
Add New Data Streams
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8">
Behavioral Features
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Behavioral Features" data-md-level="1">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Behavioral Features
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../features/feature-introduction/" class="md-nav__link">
Introduction
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8_2" type="checkbox" id="__nav_8_2" >
<label class="md-nav__link" for="__nav_8_2">
Phone
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Phone" data-md-level="2">
<label class="md-nav__title" for="__nav_8_2">
<span class="md-nav__icon md-icon"></span>
Phone
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../features/phone-accelerometer/" class="md-nav__link">
Phone Accelerometer
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-activity-recognition/" class="md-nav__link">
Phone Activity Recognition
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-applications-crashes/" class="md-nav__link">
Phone Applications Crashes
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-applications-foreground/" class="md-nav__link">
Phone Applications Foreground
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-applications-notifications/" class="md-nav__link">
Phone Applications Notifications
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-battery/" class="md-nav__link">
Phone Battery
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-bluetooth/" class="md-nav__link">
Phone Bluetooth
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-calls/" class="md-nav__link">
Phone Calls
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-conversation/" class="md-nav__link">
Phone Conversation
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-data-yield/" class="md-nav__link">
Phone Data Yield
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-keyboard/" class="md-nav__link">
Phone Keyboard
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-light/" class="md-nav__link">
Phone Light
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-locations/" class="md-nav__link">
Phone Locations
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-log/" class="md-nav__link">
Phone Log
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-messages/" class="md-nav__link">
Phone Messages
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-screen/" class="md-nav__link">
Phone Screen
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-wifi-connected/" class="md-nav__link">
Phone WiFI Connected
</a>
</li>
<li class="md-nav__item">
<a href="../../features/phone-wifi-visible/" class="md-nav__link">
Phone WiFI Visible
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8_3" type="checkbox" id="__nav_8_3" >
<label class="md-nav__link" for="__nav_8_3">
Fitbit
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Fitbit" data-md-level="2">
<label class="md-nav__title" for="__nav_8_3">
<span class="md-nav__icon md-icon"></span>
Fitbit
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../features/fitbit-calories-intraday/" class="md-nav__link">
Fitbit Calories Intraday
</a>
</li>
<li class="md-nav__item">
<a href="../../features/fitbit-data-yield/" class="md-nav__link">
Fitbit Data Yield
</a>
</li>
<li class="md-nav__item">
<a href="../../features/fitbit-heartrate-summary/" class="md-nav__link">
Fitbit Heart Rate Summary
</a>
</li>
<li class="md-nav__item">
<a href="../../features/fitbit-heartrate-intraday/" class="md-nav__link">
Fitbit Heart Rate Intraday
</a>
</li>
<li class="md-nav__item">
<a href="../../features/fitbit-sleep-summary/" class="md-nav__link">
Fitbit Sleep Summary
</a>
</li>
<li class="md-nav__item">
<a href="../../features/fitbit-sleep-intraday/" class="md-nav__link">
Fitbit Sleep Intraday
</a>
</li>
<li class="md-nav__item">
<a href="../../features/fitbit-steps-summary/" class="md-nav__link">
Fitbit Steps Summary
</a>
</li>
<li class="md-nav__item">
<a href="../../features/fitbit-steps-intraday/" class="md-nav__link">
Fitbit Steps Intraday
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8_4" type="checkbox" id="__nav_8_4" >
<label class="md-nav__link" for="__nav_8_4">
Empatica
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Empatica" data-md-level="2">
<label class="md-nav__title" for="__nav_8_4">
<span class="md-nav__icon md-icon"></span>
Empatica
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../features/empatica-accelerometer/" class="md-nav__link">
Empatica Accelerometer
</a>
</li>
<li class="md-nav__item">
<a href="../../features/empatica-heartrate/" class="md-nav__link">
Empatica Heart Rate
</a>
</li>
<li class="md-nav__item">
<a href="../../features/empatica-temperature/" class="md-nav__link">
Empatica Temperature
</a>
</li>
<li class="md-nav__item">
<a href="../../features/empatica-electrodermal-activity/" class="md-nav__link">
Empatica Electrodermal Activity
</a>
</li>
<li class="md-nav__item">
<a href="../../features/empatica-blood-volume-pulse/" class="md-nav__link">
Empatica Blood Volume Pulse
</a>
</li>
<li class="md-nav__item">
<a href="../../features/empatica-inter-beat-interval/" class="md-nav__link">
Empatica Inter Beat Interval
</a>
</li>
<li class="md-nav__item">
<a href="../../features/empatica-tags/" class="md-nav__link">
Empatica Tags
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../features/add-new-features/" class="md-nav__link">
Add New Features
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
<label class="md-nav__link" for="__nav_9">
Visualizations
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Visualizations" data-md-level="1">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
Visualizations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../visualizations/data-quality-visualizations/" class="md-nav__link">
Data Quality
</a>
</li>
<li class="md-nav__item">
<a href="../../visualizations/feature-visualizations/" class="md-nav__link">
Features
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" >
<label class="md-nav__link" for="__nav_10">
Analysis Workflows
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Analysis Workflows" data-md-level="1">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
Analysis Workflows
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../workflow-examples/analysis/" class="md-nav__link">
Complete Example
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_11" type="checkbox" id="__nav_11" checked>
<label class="md-nav__link" for="__nav_11">
Developers
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Developers" data-md-level="1">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
Developers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../git-flow/" class="md-nav__link">
Git Flow
</a>
</li>
<li class="md-nav__item">
<a href="../remote-support/" class="md-nav__link">
Remote Support
</a>
</li>
<li class="md-nav__item">
<a href="../virtual-environments/" class="md-nav__link">
Virtual Environments
</a>
</li>
<li class="md-nav__item">
<a href="../documentation/" class="md-nav__link">
Documentation
</a>
</li>
<li class="md-nav__item">
<a href="../testing/" class="md-nav__link">
Testing
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Test cases
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
Test cases
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#accelerometer" class="md-nav__link">
Accelerometer
</a>
</li>
<li class="md-nav__item">
<a href="#messages-sms" class="md-nav__link">
Messages (SMS)
</a>
</li>
<li class="md-nav__item">
<a href="#calls" class="md-nav__link">
Calls
</a>
</li>
<li class="md-nav__item">
<a href="#screen" class="md-nav__link">
Screen
</a>
</li>
<li class="md-nav__item">
<a href="#battery" class="md-nav__link">
Battery
</a>
</li>
<li class="md-nav__item">
<a href="#bluetooth" class="md-nav__link">
Bluetooth
</a>
</li>
<li class="md-nav__item">
<a href="#wifi" class="md-nav__link">
WIFI
</a>
</li>
<li class="md-nav__item">
<a href="#light" class="md-nav__link">
Light
</a>
</li>
<li class="md-nav__item">
<a href="#locations" class="md-nav__link">
Locations
</a>
</li>
<li class="md-nav__item">
<a href="#application-foreground" class="md-nav__link">
Application Foreground
</a>
</li>
<li class="md-nav__item">
<a href="#activity-recognition" class="md-nav__link">
Activity Recognition
</a>
</li>
<li class="md-nav__item">
<a href="#conversation" class="md-nav__link">
Conversation
</a>
</li>
<li class="md-nav__item">
<a href="#keyboard" class="md-nav__link">
Keyboard
</a>
</li>
<li class="md-nav__item">
<a href="#application-episodes" class="md-nav__link">
Application Episodes
</a>
</li>
<li class="md-nav__item">
<a href="#data-yield" class="md-nav__link">
Data Yield
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-calories-intraday" class="md-nav__link">
Fitbit Calories Intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-heartrate-intraday" class="md-nav__link">
Fitbit Heartrate intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-sleep-summary" class="md-nav__link">
Fitbit Sleep Summary
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-sleep-intraday" class="md-nav__link">
Fitbit Sleep Intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-heartrate-summary" class="md-nav__link">
Fitbit Heartrate Summary
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-step-intraday" class="md-nav__link">
Fitbit Step Intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-step-summary" class="md-nav__link">
Fitbit Step Summary
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-data-yield" class="md-nav__link">
Fitbit Data Yield
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../validation-schema-config/" class="md-nav__link">
Validation schema of config.yaml
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_12" type="checkbox" id="__nav_12" >
<label class="md-nav__link" for="__nav_12">
Others
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Others" data-md-level="1">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
Others
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../migrating-from-old-versions/" class="md-nav__link">
Migrating from an old version
</a>
</li>
<li class="md-nav__item">
<a href="../../code_of_conduct/" class="md-nav__link">
Code of Conduct
</a>
</li>
<li class="md-nav__item">
<a href="../../common-errors/" class="md-nav__link">
Common Errors
</a>
</li>
<li class="md-nav__item">
<a href="../../team/" class="md-nav__link">
Team
</a>
</li>
<li class="md-nav__item">
<a href="../../change-log/" class="md-nav__link">
Change Log
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#accelerometer" class="md-nav__link">
Accelerometer
</a>
</li>
<li class="md-nav__item">
<a href="#messages-sms" class="md-nav__link">
Messages (SMS)
</a>
</li>
<li class="md-nav__item">
<a href="#calls" class="md-nav__link">
Calls
</a>
</li>
<li class="md-nav__item">
<a href="#screen" class="md-nav__link">
Screen
</a>
</li>
<li class="md-nav__item">
<a href="#battery" class="md-nav__link">
Battery
</a>
</li>
<li class="md-nav__item">
<a href="#bluetooth" class="md-nav__link">
Bluetooth
</a>
</li>
<li class="md-nav__item">
<a href="#wifi" class="md-nav__link">
WIFI
</a>
</li>
<li class="md-nav__item">
<a href="#light" class="md-nav__link">
Light
</a>
</li>
<li class="md-nav__item">
<a href="#locations" class="md-nav__link">
Locations
</a>
</li>
<li class="md-nav__item">
<a href="#application-foreground" class="md-nav__link">
Application Foreground
</a>
</li>
<li class="md-nav__item">
<a href="#activity-recognition" class="md-nav__link">
Activity Recognition
</a>
</li>
<li class="md-nav__item">
<a href="#conversation" class="md-nav__link">
Conversation
</a>
</li>
<li class="md-nav__item">
<a href="#keyboard" class="md-nav__link">
Keyboard
</a>
</li>
<li class="md-nav__item">
<a href="#application-episodes" class="md-nav__link">
Application Episodes
</a>
</li>
<li class="md-nav__item">
<a href="#data-yield" class="md-nav__link">
Data Yield
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-calories-intraday" class="md-nav__link">
Fitbit Calories Intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-heartrate-intraday" class="md-nav__link">
Fitbit Heartrate intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-sleep-summary" class="md-nav__link">
Fitbit Sleep Summary
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-sleep-intraday" class="md-nav__link">
Fitbit Sleep Intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-heartrate-summary" class="md-nav__link">
Fitbit Heartrate Summary
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-step-intraday" class="md-nav__link">
Fitbit Step Intraday
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-step-summary" class="md-nav__link">
Fitbit Step Summary
</a>
</li>
<li class="md-nav__item">
<a href="#fitbit-data-yield" class="md-nav__link">
Fitbit Data Yield
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/carissalow/rapids/edit/master/docs/developers/test-cases.md" title="Edit this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>
</a>
<h1 id="test-cases">Test Cases<a class="headerlink" href="#test-cases" title="Permanent link">&para;</a></h1>
<p>Along with the continued development and the addition of new sensors and features to the RAPIDS pipeline, tests for the currently available sensors and features are being implemented. Since this is a Work In Progress this page will be updated with the list of sensors and features for which testing is available. For each of the sensors listed a description of the data used for testing (test cases) are outline. Currently for all intent and testing purposes the <code>tests/data/raw/test01/</code> contains all the test data files for testing android data formats and <code>tests/data/raw/test02/</code> contains all the test data files for testing iOS data formats. It follows that the expected (verified output) are contained in the <code>tests/data/processed/test01/</code> and <code>tests/data/processed/test02/</code> for Android and iOS respectively. <code>tests/data/raw/test03/</code> and <code>tests/data/raw/test04/</code> contain data files for testing empty raw data files for android and iOS respectively.</p>
<p>The following is a list of the sensors that testing is currently available.</p>
<table>
<thead>
<tr>
<th>Sensor</th>
<th>Provider</th>
<th>Periodic</th>
<th>Frequency</th>
<th>Event</th>
</tr>
</thead>
<tbody>
<tr>
<td>Phone Accelerometer</td>
<td>Panda</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Accelerometer</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Activity Recognition</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Applications Foreground</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Battery</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Bluetooth</td>
<td>Doryab</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Bluetooth</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Calls</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Conversation</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Data Yield</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Light</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Locations</td>
<td>Doryab</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Locations</td>
<td>Barnett</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>
<tr>
<td>Phone Messages</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone Screen</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone WiFi Connected</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Phone WiFi Visible</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Calories Intraday</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Data Yield</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Heart Rate Summary</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Heart Rate Intraday</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Sleep Summary</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Sleep Intraday</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Sleep Intraday</td>
<td>PRICE</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Steps Summary</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
<tr>
<td>Fitbit Steps Intraday</td>
<td>RAPIDS</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
</tbody>
</table>
<h2 id="accelerometer">Accelerometer<a class="headerlink" href="#accelerometer" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The raw accelerometer data file, <code>phone_accelerometer_raw.csv</code>, contains data for 4 separate days</li>
<li>One episode for each daily segment (night, morning, afternoon and evening)</li>
<li>Two episodes locate in the same 30-min segment (<code>Fri 00:15:00</code> and <code>Fri 00:21:21</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Fri 00:15:00</code> and <code>Fri 18:12:00</code>)</li>
<li>One episode before the time switch (<code>Sun 00:02:00</code>) and one episode after the time switch (<code>Sun 04:18:00</code>)</li>
<li>Multiple episodes within one min which cause variance in magnitude (<code>Fri 00:10:25</code>, <code>Fri 00:10:27</code> and <code>Fri 00:10:46</code>)</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
</tbody>
</table>
<h2 id="messages-sms">Messages (SMS)<a class="headerlink" href="#messages-sms" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The raw message data file, <code>phone_messages_raw.csv</code>, contains data for 4 separate days</li>
<li>One episode for each daily segment (night, morning, afternoon and evening)</li>
<li>Two <code>sent</code> episodes locate in the same 30-min segment (<code>Fri 16:08:03.000</code> and <code>Fri 16:19:35.000</code>)</li>
<li>Two <code>received</code> episodes locate in the same 30-min segment (<code>Sat 06:45:05.000</code> and <code>Fri 06:45:05.000</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Fri 11:57:56.385</code> and <code>Sat 10:54:10.000</code>)</li>
<li>One episode before the time switch (<code>Sun 00:48:01.000</code>) and one episode after the time switch (<code>Sun 06:21:01.000</code>)</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
</tbody>
</table>
<h2 id="calls">Calls<a class="headerlink" href="#calls" title="Permanent link">&para;</a></h2>
<p>Due to the difference in the format of the raw data for iOS and Android the following is the expected results
the <code>phone_calls.csv</code>. </p>
<p>Description</p>
<ul>
<li>One missed episode, one outgoing episode and one incoming episode on Friday night, morning, afternoon and evening</li>
<li>There is at least one episode of each type of phone calls on each day</li>
<li>One incoming episode crossing two 30-mins segments</li>
<li>One outgoing episode crossing two 30-mins segments</li>
<li>One missed episode before, during and after the <code>event</code></li>
<li>There is one incoming episode before, during or after the <code>event</code></li>
<li>There is one outcoming episode before, during or after the <code>event</code></li>
<li>There is one missed episode before, during or after the <code>event</code></li>
</ul>
<p>Data format</p>
<table>
<thead>
<tr>
<th>Device</th>
<th>Missed</th>
<th>Outgoing</th>
<th>Incoming</th>
</tr>
</thead>
<tbody>
<tr>
<td>android</td>
<td>3</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td>ios</td>
<td>1,4 or 3,4</td>
<td>3,2,4</td>
<td>1,2,4</td>
</tr>
</tbody>
</table>
<p>Note
When generating test data, all traces for iOS device need to be unique otherwise the episode with duplicate trace will be dropped </p>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
</tbody>
</table>
<h2 id="screen">Screen<a class="headerlink" href="#screen" title="Permanent link">&para;</a></h2>
<p>Due to the difference in the format of the raw screen data for iOS and Android the following is the expected results the <code>phone_screen.csv</code>. </p>
<p>Description</p>
<ul>
<li>The screen data file contains data for 4 days.</li>
<li>The screen data contains 1 record to represent an <code>unlock</code>
episode that falls within an <code>epoch</code> for every <code>epoch</code>.</li>
<li>The screen data contains 1 record to represent an <code>unlock</code>
episode that falls across the boundary of 2 epochs. Namely the
<code>unlock</code> episode starts in one epoch and ends in the next, thus
there is a record for <code>unlock</code> episodes that fall across <code>night</code>
to <code>morning</code>, <code>morning</code> to <code>afternoon</code> and finally <code>afternoon</code> to
<code>night</code></li>
<li>One episode that crossing two <code>30-min</code> segments</li>
</ul>
<p>Data format</p>
<table>
<thead>
<tr>
<th>Device</th>
<th>unlock</th>
</tr>
</thead>
<tbody>
<tr>
<td>Android</td>
<td>3, 0</td>
</tr>
<tr>
<td>iOS</td>
<td>3, 2</td>
</tr>
</tbody>
</table>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
</tbody>
</table>
<h2 id="battery">Battery<a class="headerlink" href="#battery" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The 4-day raw data is contained in <code>phone_battery_raw.csv</code></li>
<li>One discharge episode acrossing two 30-min time segements (<code>Fri 05:57:30.123</code> to <code>Fri 06:04:32.456</code>)</li>
<li>One charging episode acrossing two 30-min time segments (<code>Fri 11:55:58.416</code> to <code>Fri 12:08:07.876</code>)</li>
<li>One discharge episode and one charging episode locate within the same 30-min time segement (<code>Fri 21:30:00</code> to <code>Fri 22:00:00</code>)</li>
<li>One episode before the time switch (<code>Sun 00:24:00.000</code>) and one episode after the time switch (<code>Sun 21:58:00</code>)</li>
<li>Two episodes locate in the same daily segment</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
</tbody>
</table>
<h2 id="bluetooth">Bluetooth<a class="headerlink" href="#bluetooth" title="Permanent link">&para;</a></h2>
<p>Description </p>
<ul>
<li>The 4-day raw data is contained in <code>phone_bluetooth_raw.csv</code></li>
<li>One episode for each daily segment (<code>night</code>, <code>morning</code>, <code>afternoon</code> and <code>evening</code>)</li>
<li>Two episodes locate in the same 30-min segment (<code>Fri 23:38:45.789</code> and <code>Fri 23:59:59.465</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Fri 00:00:00.798</code> and <code>Fri 00:49:04.132</code>)</li>
<li>One episode before the time switch (<code>Sun 00:24:00.000</code>) and one episode after the time switch (<code>Sun 17:32:00.000</code>)</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
</tbody>
</table>
<h2 id="wifi">WIFI<a class="headerlink" href="#wifi" title="Permanent link">&para;</a></h2>
<p>There are two wifi features (<code>phone wifi connected</code> and <code>phone wifi visible</code>). The raw test data are seperatly stored in the <code>phone_wifi_connected_raw.csv</code> and <code>phone_wifi_visible_raw.csv</code>.</p>
<p>Description </p>
<ul>
<li>One episode for each <code>epoch</code> (<code>night</code>, <code>morining</code>, <code>afternoon</code> and <code>evening</code>)</li>
<li>Two two episodes in the same time segment (<code>daily</code> and <code>30-min</code>)</li>
<li>Two episodes around the transition of <code>epochs</code> (e.g. one at the end of <code>night</code> and one at the beginning of <code>morning</code>) </li>
<li>One episode before and after the time switch on Sunday</li>
</ul>
<p>phone wifi connected</p>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
</tbody>
</table>
<p>phone wifi visible</p>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
</tbody>
</table>
<h2 id="light">Light<a class="headerlink" href="#light" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The 4-day raw light data is contained in <code>phone_light_raw.csv</code></li>
<li>One episode for each daily segment (<code>night</code>, <code>morning</code>, <code>afternoon</code> and <code>evening</code>)</li>
<li>Two episodes locate in the same 30-min segment (<code>Fri 00:07:27.000</code> and <code>Fri 00:12:00.000</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Fri 01:00:00</code> and <code>Fri 03:59:59.654</code>)</li>
<li>One episode before the time switch (<code>Sun 00:08:00.000</code>) and one episode after the time switch (<code>Sun 05:36:00.000</code>)</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
</tbody>
</table>
<h2 id="locations">Locations<a class="headerlink" href="#locations" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The participant&rsquo;s home location is (latitude=1, longitude=1).</li>
<li>From Sat 10:56:00 to Sat 11:04:00, the center of the cluster is (latitude=-100, longitude=-100).</li>
<li>From Sun 03:30:00 to Sun 03:47:00, the center of the cluster is (latitude=1, longitude=1). Home location is extracted from this period.</li>
<li>From Sun 11:30:00 to Sun 11:38:00, the center of the cluster is (latitude=100, longitude=100).</li>
</ul>
<h2 id="application-foreground">Application Foreground<a class="headerlink" href="#application-foreground" title="Permanent link">&para;</a></h2>
<ul>
<li>The 4-day raw application data is contained in <code>phone_applications_foreground_raw.csv</code></li>
<li>One episode for each daily segment (night, morning, afternoon and evening)</li>
<li>Two episodes locate in the same 30-min segment (<code>Fri 10:12:56.385</code> and <code>Fri 10:18:48.895</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Fri 11:57:56.385</code> and <code>Fri 12:02:56.385</code>)</li>
<li>One episode before the time switch (<code>Sun 00:07:48.001</code>) and one episode after the time switch (<code>Sun 05:10:30.001</code>)</li>
<li>Two custom category (<code>Dating</code>) episode, one at <code>Fri 06:05:10.385</code>, another one at <code>Fri 11:53:00.385</code></li>
</ul>
<p>Checklist:</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
</tbody>
</table>
<h2 id="activity-recognition">Activity Recognition<a class="headerlink" href="#activity-recognition" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The 4-day raw activity data is contained in <code>plugin_google_activity_recognition_raw.csv</code> and <code>plugin_ios_activity_recognition_raw.csv</code>.</li>
<li>Two episodes locate in the same 30-min segment (<code>Fri 04:01:54</code> and <code>Fri 04:13:52</code>)</li>
<li>One episode for each daily segment (<code>night</code>, <code>morning</code>, <code>afternoon</code> and <code>evening</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Fri 05:03:09</code> and <code>Fri 05:50:36</code>)</li>
<li>Two episodes with the time difference less than <code>5 mins</code> threshold (<code>Fri 07:14:21</code> and <code>Fri 07:18:50</code>)</li>
<li>One episode before the time switch (<code>Sun 00:46:00</code>) and one episode after the time switch (<code>Sun 03:42:00</code>)</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, iOS</td>
</tr>
</tbody>
</table>
<h2 id="conversation">Conversation<a class="headerlink" href="#conversation" title="Permanent link">&para;</a></h2>
<p>The 4-day raw conversation data is contained in <code>phone_conversation_raw.csv</code>. The different <code>inference</code> records are
randomly distributed throughout the <code>epoch</code>. </p>
<p>Description</p>
<ul>
<li>One episode for each daily segment (<code>night</code>, <code>morning</code>, <code>afternoon</code> and <code>evening</code>) on each day</li>
<li>Two episodes near the transition of the daily segment, one starts at the end of the afternoon, <code>Fri 17:10:00</code> and another one starts at the beginning of the evening, <code>Fri 18:01:00</code></li>
<li>One episode across two segments, <code>daily</code> and <code>30-mins</code>, (from <code>Fri 05:55:00</code> to <code>Fri 06:00:41</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Sat 12:45:36</code> and <code>Sat 16:48:22</code>)</li>
<li>One episode before the time switch, <code>Sun 00:15:06</code>, and one episode after the time switch, <code>Sun 06:01:00</code></li>
</ul>
<p>Data format</p>
<table>
<thead>
<tr>
<th>inference</th>
<th>type</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>silence</td>
</tr>
<tr>
<td>1</td>
<td>noise</td>
</tr>
<tr>
<td>2</td>
<td>voice</td>
</tr>
<tr>
<td>3</td>
<td>unknown</td>
</tr>
</tbody>
</table>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android</td>
</tr>
</tbody>
</table>
<h2 id="keyboard">Keyboard<a class="headerlink" href="#keyboard" title="Permanent link">&para;</a></h2>
<ul>
<li>The raw keyboard data file contains data for 4 days.</li>
<li>
<p>The raw keyboard data contains records with difference in <code>timestamp</code> ranging from
milliseconds to seconds. </p>
</li>
<li>
<p>With difference in timestamps between consecutive records more than 5 seconds helps us to create separate
sessions within the usage of the same app. This helps to verify the case where sessions have to be different. </p>
</li>
<li>
<p>The raw keyboard data contains records where the difference in text is less
than 5 seconds which makes it into 1 session but because of difference of app
new session starts. This edge case determines the behaviour within particular app
and also within 5 seconds.</p>
</li>
<li>
<p>The raw keyboard data also contains the records where length of <code>current_text</code> varies between consecutive rows. This helps us to tests on the cases where input text is entered by auto-suggested
or auto-correct operations.</p>
</li>
<li>
<p>One three-minute episode with a 1-minute row on Sun 08:59:54.65 and 09:00:00,another on Sun 12:01:02 that are considering a single episode in multi-timezone event segments to showcase how
inferring time zone data for Keyboard from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes.</p>
</li>
</ul>
<h2 id="application-episodes">Application Episodes<a class="headerlink" href="#application-episodes" title="Permanent link">&para;</a></h2>
<ul>
<li>The feature requires raw application foreground data file and raw phone screen data file</li>
<li>The raw data files contains data for 4 day.</li>
<li>The raw conversation data contains records with difference in <code>timestamp</code> ranging from milliseconds to minutes.</li>
<li>An app episode starts when an app is launched and ends when another app is launched, marking the episode end of the first one,
or when the screen locks. Thus, we are taking into account the screen unlock episodes.</li>
<li>There are multiple apps usage within each screen unlock episode to verify creation of different app episodes in each
screen unlock session. In the screen unlock episode starting from Fri 05:56:51, Fri 10:00:24, Sat 17:48:01, Sun 22:02:00, and Mon 21:05:00 we have multiple apps, both system and non-system apps, to check this.</li>
<li>The 22 minute chunk starting from Fri 10:03:56 checks app episodes for system apps only.</li>
<li>The screen unlock episode starting from Mon 21:05:00 and Sat 17:48:01 checks if the screen lock marks the end of episode for that particular app which was launched a few milliseconds to 8 mins before the screen lock.</li>
<li>Finally, since application foreground is only for Android devices, this feature is also for Android devices only. All other files are empty data files</li>
</ul>
<h2 id="data-yield">Data Yield<a class="headerlink" href="#data-yield" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>Two sensors were picked for testing, <code>phone_screen</code> and <code>phone_light</code>. <code>phone_screen</code> is event based and <code>phone_light</code> is sampling at regular frequency</li>
<li>A 31-min episode (from <code>Fri 01:00:00</code> to <code>Fri 01:30:00</code>) in phone_light data, which is considered as a <code>validyieldedhours</code></li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>android, ios</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-calories-intraday">Fitbit Calories Intraday<a class="headerlink" href="#fitbit-calories-intraday" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>A five-minute sedentary episode on Fri 11:00:00</li>
<li>A one-minute sedentary episode on Sun 02:00:00. It exists in November but not in February in STZ</li>
<li>A five-minute sedentary episode on Fri 11:58:00. It is split within two 30-min segments and the morning</li>
<li>A three-minute lightly active episode on Fri 11:10:00, a one-minute at 11:18:00 and a one-minute 11:24:00. These check for start and end times of first/last/longest episode</li>
<li>A three-minute fairly active episode on Fri 11:40:00, a one-minute at 11:48:00 and a one-minute 11:54:00. These check for start and end times of first/last/longest episode</li>
<li>A three-minute very active episode on Fri 12:10:00, a one-minute at 12:18:00 and a one-minute 12:24:00. These check for start and end times of first/last/longest episode</li>
<li>A eight-minute MVPA episode with intertwined fairly and very active rows on Fri 12:30:00</li>
<li>The above episodes contain six higmet (&gt;= 3 MET) episodes and nine lowmet episodes.</li>
<li>One two-minute sedentary episode with a 1-minute row on Sun 09:00:00 and another on Sun 12:01:01 that are considering a single episode in multi-timezone event segments to showcase how inferring time zone data for Fitbit from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes.</li>
<li>A three-minute sedentary episode on Sat 08:59 that will be ignored for multi-timezone event segments.</li>
<li>A three-minute sedentary episode on Sat 12:59 of which the first minute will be ignored for multi-timezone event segments since the test segment starts at 13:00</li>
<li>A three-minute sedentary episode on Sat 16:00</li>
<li>A four-minute sedentary episode on Sun 10:01 that will be ignored for Novembers&rsquo;s multi-timezone event segments since the test segment ends at 10am on that weekend.</li>
<li>A three-minute very active episode on Sat 16:03. This episode and the one at 16:00 are counted as one for lowmet episodes</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-heartrate-intraday">Fitbit Heartrate intraday<a class="headerlink" href="#fitbit-heartrate-intraday" title="Permanent link">&para;</a></h2>
<p>Description:</p>
<ul>
<li>The 4-day raw heartrate data is contained in <code>fitbit_heartrate_intraday_raw.csv</code></li>
<li>One episode for each daily segment (<code>night</code>, <code>morning</code>, <code>afternoon</code> and <code>evening</code>)</li>
<li>Two episodes locate in the same 30-min segment (<code>Fri 00:49:00</code> and <code>Fri 00:52:00</code>)</li>
<li>Two different types of heartrate zone episodes locate in the same 30-min segment (<code>Fri 05:49:00 outofrange</code> and <code>Fri 05:57:00 fatburn</code>)</li>
<li>Two episodes locate in the same daily segment (<code>Fri 12:02:00</code> and <code>Fri 19:38:00</code>)</li>
<li>One episode before the time switch, <code>Sun 00:08:00</code>, and one episode after the time switch, <code>Sun 07:28:00</code></li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-sleep-summary">Fitbit Sleep Summary<a class="headerlink" href="#fitbit-sleep-summary" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>A main sleep episode that starts on Fri 20:00:00 and ends on Sat 02:00:00. This episode starts after 11am (Last Night End) which will be considered as today&rsquo;s (Fri) data.</li>
<li>A nap that starts on Sat 04:00:00 and ends on Sat 06:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday&rsquo;s (Fri) data.</li>
<li>A nap that starts on Sat 13:00:00 and ends on Sat 15:00:00. This episode starts after 11am (Last Night End) which will be considered as today&rsquo;s (Sat) data.</li>
<li>A main sleep that starts on Sun 01:00:00 and ends on Sun 12:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday&rsquo;s (Sat) data.</li>
<li>A main sleep that starts on Sun 23:00:00 and ends on Mon 07:00:00. This episode starts after 11am (Last Night End) which will be considered as today&rsquo;s (Sun) data.</li>
<li>Any segment shorter than one day will be ignored for sleep RAPIDS features.</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-sleep-intraday">Fitbit Sleep Intraday<a class="headerlink" href="#fitbit-sleep-intraday" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>A five-minute main sleep episode with asleep-classic level on Fri 11:00:00.</li>
<li>An eight-hour main sleep episode on Fri 17:00:00. It is split into 2 parts for daily segment: a seven-hour sleep episode on Fri 17:00:00 and an one-hour sleep episode on Sat 00:00:00.</li>
<li>A two-hour nap on Sat 01:00:00 that will be ignored for main sleep features.</li>
<li>An one-hour nap on Sat 13:00:00 that will be ignored for main sleep features.</li>
<li>An eight-hour main sleep episode on Sat 22:00:00. This episode ends on Sun 08:00:00 (NY) for March and Sun 06:00:00 (NY) for Novembers due to daylight savings. It will be considered for <code>beforeMarchEvent</code> segment and ignored for <code>beforeNovemberEvent</code> segment.</li>
<li>A nine-hour main sleep episode on Sun 11:00:00. Start time will be assigned as NY time zone and converted to 14:00:00.</li>
<li>A seven-hour main sleep episode on Mon 06:00:00. This episode will be split into two parts: a five-hour sleep episode on Mon 06:00:00 and a two-hour sleep episode on Mon 11:00:00. The first part will be discarded as it is before 11am (Last Night End)</li>
<li>Any segment shorter than one day will be ignored for sleep PRICE features.</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-heartrate-summary">Fitbit Heartrate Summary<a class="headerlink" href="#fitbit-heartrate-summary" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The 4-day raw heartrate summary data is contained in <code>fitbit_heartrate_summary_raw.csv</code>.</li>
<li>As heartrate summary is periodic, it only generates results in periodic feature, there will be no result in frequency and event. </li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-step-intraday">Fitbit Step Intraday<a class="headerlink" href="#fitbit-step-intraday" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The 4-day raw heartrate summary data is contained in <code>fitbit_steps_intraday_raw.csv</code></li>
<li>One episode for each daily segment (<code>night</code>, <code>morning</code>, <code>afternoon</code> and <code>evening</code>) on each day</li>
<li>Two episodes within the same 30-min segment (<code>Fri 05:58:00</code> and <code>Fri 05:59:00</code>)</li>
<li>A one-min episode at <code>2020-03-07 09:00:00</code> that will be converted to New York time <code>2020-03-07 12:00:00</code></li>
<li>One episode before the time switch, <code>Sun 00:19:00</code>, and one episode after the time switch, <code>Sun 09:01:00</code></li>
<li>Episodes cross two 30-min segments (<code>Fri 11:59:00</code> and <code>Fri 12:00:00</code>)</li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-step-summary">Fitbit Step Summary<a class="headerlink" href="#fitbit-step-summary" title="Permanent link">&para;</a></h2>
<p>Description</p>
<ul>
<li>The 4-day raw heartrate summary data is contained in <code>fitbit_steps_summary_raw.csv</code>.</li>
<li>As heartrate summary is periodic, it only generates results in periodic feature, there will be no result in frequency and event. </li>
</ul>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<h2 id="fitbit-data-yield">Fitbit Data Yield<a class="headerlink" href="#fitbit-data-yield" title="Permanent link">&para;</a></h2>
<p>Checklist</p>
<table>
<thead>
<tr>
<th>time segment</th>
<th>single tz</th>
<th>multi tz</th>
<th>platform</th>
</tr>
</thead>
<tbody>
<tr>
<td>30min</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>morning</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>daily</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>threeday</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>weekend</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeMarchEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
<tr>
<td>beforeNovemberEvent</td>
<td>OK</td>
<td>OK</td>
<td>fitbit</td>
</tr>
</tbody>
</table>
<!-- Add custom comment system integration here -->
<!-- Utterances integration -->
<h2 id="__comments">Comments</h2>
<script type="text/javascript">
var rapids_utterances_theme = false
document.onreadystatechange = function () {
if (document.readyState == "interactive") {
// wait for utterances to load and send it's first message.
addEventListener('message', event => {
if (event.origin !== 'https://utteranc.es' || rapids_utterances_theme == true) {
return;
}
rapids_utterances_theme = true
if(document.body.getAttribute("data-md-color-scheme") == "default")
document.querySelector("iframe.utterances-frame").contentWindow.postMessage({ type: "set-theme", theme: "github-light" },"https://utteranc.es/")
else
document.querySelector("iframe.utterances-frame").contentWindow.postMessage({ type: "set-theme", theme: "photon-dark" },"https://utteranc.es/")
});
document.getElementById('__palette_1').onclick = function(){
document.querySelector("iframe.utterances-frame").contentWindow.postMessage({ type: "set-theme", theme: "github-light" },"https://utteranc.es/")
}
document.getElementById('__palette_2').onclick = function(){
document.querySelector("iframe.utterances-frame").contentWindow.postMessage({ type: "set-theme", theme: "photon-dark" },"https://utteranc.es/")
}
}
}
</script>
<script src="https://utteranc.es/client.js"
repo="carissalow/rapids"
issue-term="pathname"
label="docs comments"
theme="github-light"
crossorigin="anonymous"
async>
</script>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer">
<a href="../testing/" class="md-footer__link md-footer__link--prev" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Previous
</span>
Testing
</div>
</div>
</a>
<a href="../validation-schema-config/" class="md-footer__link md-footer__link--next" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
Validation schema of config.yaml
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
<div class="md-footer-copyright__highlight">
Released under AGPL
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs Insiders
</a>
</div>
<div class="md-footer-social">
<a href="https://twitter.com/RAPIDS_Science" target="_blank" rel="noopener" title="twitter.com" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "search.suggest", "search.highlight"], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../../assets/javascripts/workers/search.df8cae7d.min.js", "version": {"provider": "mike"}}</script>
<script src="../../assets/javascripts/bundle.0c4ae912.min.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</body>
</html>