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

1520 lines
45 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="search" type="application/opensearchdescription+xml" href="../../search.xml" title="RAPIDS Search">
<link rel="shortcut icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.1.7+insiders-1.13.1">
<title>Test cases - RAPIDS</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.9526ea36.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.47d7edde.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>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</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>var palette=JSON.parse(localStorage.getItem("__palette")||"{}");if(void 0!==palette.color)for(var key in palette.color)document.body.setAttribute("data-md-color-"+key,palette.color[key])</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>
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid" aria-label="Header">
<a href="../.." title="RAPIDS" class="md-header-nav__button md-logo" aria-label="RAPIDS">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 18.31V20a2 2 0 01-2 2H7a2 2 0 01-2-2v-3.7c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V12.3c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V8.3C4.54 8.12 3.95 8 3 8a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V4a2 2 0 012-2h10a2 2 0 012 2v2.16c1.78.31 2.54.97 2.71 1.13.39.39.39 1.03 0 1.42-.39.39-.91.38-1.42 0 0 0-1.04-.71-3.29-.71-1.26 0-2.09.41-3.05.9-1.04.51-2.21 1.1-3.95 1.1-.36 0-.69 0-1-.04V7.95c.3.05.63.05 1 .05 1.26 0 2.09-.41 3.05-.89C14.09 6.59 15.27 6 17 6V4H7v16h10v-2c1.5 0 1.97.29 2 .31M17 10c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 11.08 20.25 10 17 10m0 4c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 15.08 20.25 14 17 14z"/></svg>
</a>
<label class="md-header-nav__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-nav__title" data-md-component="header-title">
<div class="md-header-nav__ellipsis">
<div class="md-header-nav__topic">
<span class="md-ellipsis">
RAPIDS
</span>
</div>
<div class="md-header-nav__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Test cases
</span>
</div>
</div>
</div>
<div class="md-header-nav__options">
<button class="md-header-nav__button md-icon" title="Switch to light mode" aria-label="Switch to light mode" data-md-option="palette" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="blue" data-md-state="hidden">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 00-5 5 5 5 0 005 5h10a5 5 0 005-5 5 5 0 00-5-5m0 8a3 3 0 01-3-3 3 3 0 013-3 3 3 0 013 3 3 3 0 01-3 3z"/></svg>
</button>
<button class="md-header-nav__button md-icon" title="Switch to dark mode" aria-label="Switch to dark mode" data-md-option="palette" data-md-color-scheme="slate" data-md-color-primary="blue" data-md-color-accent="blue" data-md-state="hidden">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 10a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2 2 2 0 012-2m10-3a5 5 0 015 5 5 5 0 01-5 5H7a5 5 0 01-5-5 5 5 0 015-5h10M7 9a3 3 0 00-3 3 3 3 0 003 3h10a3 3 0 003-3 3 3 0 00-3-3H7z"/></svg>
</button>
</div>
<label class="md-header-nav__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 0116 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 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.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" data-md-state="active" 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 0116 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 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.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>
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.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>
<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-nav__source">
<a href="https://github.com/carissalow/rapids/" title="Go to repository" class="md-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.05L244 40.45a28.87 28.87 0 00-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 01-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 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-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="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">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 18.31V20a2 2 0 01-2 2H7a2 2 0 01-2-2v-3.7c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V12.3c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V8.3C4.54 8.12 3.95 8 3 8a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V4a2 2 0 012-2h10a2 2 0 012 2v2.16c1.78.31 2.54.97 2.71 1.13.39.39.39 1.03 0 1.42-.39.39-.91.38-1.42 0 0 0-1.04-.71-3.29-.71-1.26 0-2.09.41-3.05.9-1.04.51-2.21 1.1-3.95 1.1-.36 0-.69 0-1-.04V7.95c.3.05.63.05 1 .05 1.26 0 2.09-.41 3.05-.89C14.09 6.59 15.27 6 17 6V4H7v16h10v-2c1.5 0 1.97.29 2 .31M17 10c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 11.08 20.25 10 17 10m0 4c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 15.08 20.25 14 17 14z"/></svg>
</a>
RAPIDS
</label>
<div class="md-nav__source">
<a href="https://github.com/carissalow/rapids/" title="Go to repository" class="md-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.05L244 40.45a28.87 28.87 0 00-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 01-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 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-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 md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2" >
<label class="md-nav__link" for="nav-2">
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-2">
<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="../../file-structure/" class="md-nav__link">
File Structure
</a>
</li>
<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-3" type="checkbox" id="nav-3" >
<label class="md-nav__link" for="nav-3">
Example Workflows
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Example Workflows" data-md-level="1">
<label class="md-nav__title" for="nav-3">
<span class="md-nav__icon md-icon"></span>
Example Workflows
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../workflow-examples/minimal/" class="md-nav__link">
Minimal
</a>
</li>
<li class="md-nav__item">
<a href="../../workflow-examples/analysis/" class="md-nav__link">
Analysis
</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-4" type="checkbox" id="nav-4" >
<label class="md-nav__link" for="nav-4">
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-4">
<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-4-2" type="checkbox" id="nav-4-2" >
<label class="md-nav__link" for="nav-4-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-4-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-foreground/" class="md-nav__link">
Phone Applications Foreground
</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-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-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-4-3" type="checkbox" id="nav-4-3" >
<label class="md-nav__link" for="nav-4-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-4-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-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-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">
<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-5" type="checkbox" id="nav-5" >
<label class="md-nav__link" for="nav-5">
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-5">
<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--active 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" checked>
<label class="md-nav__link" for="nav-6">
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-6">
<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-scrollfix>
<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="#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>
</ul>
</nav>
</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">
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-7">
<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 beta
</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="../../faq/" class="md-nav__link">
FAQ
</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>
<li class="md-nav__item">
<a href="../../citation/" class="md-nav__link">
Citation
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="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-scrollfix>
<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="#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>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-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>
<h2 id="messages-sms">Messages (SMS)<a class="headerlink" href="#messages-sms" title="Permanent link">&para;</a></h2>
<ul>
<li>The raw message data file contains data for 2 separate days.</li>
<li>The data for the first day contains records 5 records for every
<code>epoch</code>.</li>
<li>The second day's data contains 6 records for each of only 2
<code>epoch</code> (currently <code>morning</code> and <code>evening</code>)</li>
<li>The raw message data contains records for both <code>message_types</code>
(i.e. <code>recieved</code> and <code>sent</code>) in both days in all epochs. The
number records with each <code>message_types</code> per epoch is randomly
distributed There is at least one records with each
<code>message_types</code> per epoch.</li>
<li>There is one raw message data file each, as described above, for
testing both iOS and Android data.</li>
<li>There is also an additional empty data file for both android and
iOS for testing empty data files</li>
</ul>
<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 call data for iOS and Android the following is the expected results the <code>calls_with_datetime_unified.csv</code>. This would give a better idea of the use cases being tested since the <code>calls_with_datetime_unified.csv</code> would make both the iOS and Android data comparable.</p>
<ul>
<li>The call data would contain data for 2 days.</li>
<li>The data for the first day contains 6 records for every <code>epoch</code>.</li>
<li>The second day's data contains 6 records for each of only 2
<code>epoch</code> (currently <code>morning</code> and <code>evening</code>)</li>
<li>The call data contains records for all <code>call_types</code> (i.e.
<code>incoming</code>, <code>outgoing</code> and <code>missed</code>) in both days in all epochs.
The number records with each of the <code>call_types</code> per epoch is
randomly distributed. There is at least one records with each
<code>call_types</code> per epoch.</li>
<li>There is one call data file each, as described above, for testing
both iOS and Android data.</li>
<li>There is also an additional empty data file for both android and
iOS for testing empty data files</li>
</ul>
<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>screen_deltas.csv</code>. This would give a better idea of the use cases being tested since the <code>screen_eltas.csv</code> would make both the iOS and Android data comparable These files are used to calculate the features for the screen sensor</p>
<ul>
<li>The screen delta data file contains data for 1 day.</li>
<li>The screen delta 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 delta 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>The testing is done for <code>unlock</code> episode_type.</li>
<li>There is one screen data file each for testing both iOS and
Android data formats.</li>
<li>There is also an additional empty data file for both android and
iOS for testing empty data files</li>
</ul>
<h2 id="battery">Battery<a class="headerlink" href="#battery" title="Permanent link">&para;</a></h2>
<p>Due to the difference in the format of the raw battery data for iOS and Android as well as versions of iOS the following is the expected results the <code>battery_deltas.csv</code>. This would give a better idea of the use cases being tested since the <code>battery_deltas.csv</code> would make both the iOS and Android data comparable. These files are used to calculate the features for the battery sensor.</p>
<ul>
<li>The battery delta data file contains data for 1 day.</li>
<li>The battery delta data contains 1 record each for a <code>charging</code> and
<code>discharging</code> episode that falls within an <code>epoch</code> for every
<code>epoch</code>. Thus, for the <code>daily</code> epoch there would be multiple
<code>charging</code> and <code>discharging</code> episodes</li>
<li>Since either a <code>charging</code> episode or a <code>discharging</code> episode and
not both can occur across epochs, in order to test episodes that
occur across epochs alternating episodes of <code>charging</code> and
<code>discharging</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> are
present in the battery delta data. This starts with a
<code>discharging</code> episode that begins in <code>night</code> and end in <code>morning</code>.</li>
<li>There is one battery data file each, for testing both iOS and
Android data formats.</li>
<li>There is also an additional empty data file for both android and
iOS for testing empty data files</li>
</ul>
<h2 id="bluetooth">Bluetooth<a class="headerlink" href="#bluetooth" title="Permanent link">&para;</a></h2>
<ul>
<li>The raw Bluetooth data file contains data for 1 day.</li>
<li>The raw Bluetooth data contains at least 2 records for each
<code>epoch</code>. Each <code>epoch</code> has a record with a <code>timestamp</code> for the
beginning boundary for that <code>epoch</code> and a record with a
<code>timestamp</code> for the ending boundary for that <code>epoch</code>. (e.g. For
the <code>morning</code> epoch there is a record with a <code>timestamp</code> for
<code>6:00AM</code> and another record with a <code>timestamp</code> for <code>11:59:59AM</code>.
These are to test edge cases)</li>
<li>An option of 5 Bluetooth devices are randomly distributed
throughout the data records.</li>
<li>There is one raw Bluetooth data file each, for testing both iOS
and Android data formats.</li>
<li>There is also an additional empty data file for both android and
iOS for testing empty data files.</li>
</ul>
<h2 id="wifi">WIFI<a class="headerlink" href="#wifi" title="Permanent link">&para;</a></h2>
<ul>
<li>There are 2 data files (<code>wifi_raw.csv</code> and <code>sensor_wifi_raw.csv</code>)
for each fake participant for each phone platform. </li>
<li>The raw WIFI data files contain data for 1 day.</li>
<li>The <code>sensor_wifi_raw.csv</code> data contains at least 2 records for
each <code>epoch</code>. Each <code>epoch</code> has a record with a <code>timestamp</code> for the
beginning boundary for that <code>epoch</code> and a record with a
<code>timestamp</code> for the ending boundary for that <code>epoch</code>. (e.g. For
the <code>morning</code> epoch there is a record with a <code>timestamp</code> for
<code>6:00AM</code> and another record with a <code>timestamp</code> for <code>11:59:59AM</code>.
These are to test edge cases)</li>
<li>The <code>wifi_raw.csv</code> data contains 3 records with random timestamps
for each <code>epoch</code> to represent visible broadcasting WIFI network.
This file is empty for the iOS phone testing data.</li>
<li>An option of 10 access point devices is randomly distributed
throughout the data records. 5 each for <code>sensor_wifi_raw.csv</code> and
<code>wifi_raw.csv</code>.</li>
<li>There data files for testing both iOS and Android data formats.</li>
<li>There are also additional empty data files for both android and
iOS for testing empty data files.</li>
</ul>
<h2 id="light">Light<a class="headerlink" href="#light" title="Permanent link">&para;</a></h2>
<ul>
<li>The raw light data file contains data for 1 day.</li>
<li>The raw light data contains 3 or 4 rows of data for each <code>epoch</code>
except <code>night</code>. The single row of data for <code>night</code> is for testing
features for single values inputs. (Example testing the standard
deviation of one input value)</li>
<li>Since light is only available for Android there is only one file
that contains data for Android. All other files (i.e. for iPhone)
are empty data files.</li>
</ul>
<h2 id="application-foreground">Application Foreground<a class="headerlink" href="#application-foreground" title="Permanent link">&para;</a></h2>
<ul>
<li>The raw application foreground data file contains data for 1 day.</li>
<li>The raw application foreground data contains 7 - 9 rows of data
for each <code>epoch</code>. The records for each <code>epoch</code> contains apps that
are randomly selected from a list of apps that are from the
<code>MULTIPLE_CATEGORIES</code> and <code>SINGLE_CATEGORIES</code> (See
<a href="">testing_config.yaml</a>). There are also records in each epoch
that have apps randomly selected from a list of apps that are from
the <code>EXCLUDED_CATEGORIES</code> and <code>EXCLUDED_APPS</code>. This is to test
that these apps are actually being excluded from the calculations
of features. There are also records to test <code>SINGLE_APPS</code>
calculations.</li>
<li>Since application foreground is only available for Android there
is only one file that contains data for Android. All other files
(i.e. for iPhone) are empty data files.</li>
</ul>
<h2 id="activity-recognition">Activity Recognition<a class="headerlink" href="#activity-recognition" title="Permanent link">&para;</a></h2>
<ul>
<li>The raw Activity Recognition data file contains data for 1 day.</li>
<li>The raw Activity Recognition data each <code>epoch</code> period contains
rows that records 2 - 5 different <code>activity_types</code>. The is such
that durations of activities can be tested. Additionally, there
are records that mimic the duration of an activity over the time
boundary of neighboring epochs. (For example, there a set of
records that mimic the participant <code>in_vehicle</code> from <code>afternoon</code>
into <code>evening</code>)</li>
<li>There is one file each with raw Activity Recognition data for
testing both iOS and Android data formats.
(plugin_google_activity_recognition_raw.csv for android and
plugin_ios_activity_recognition_raw.csv for iOS)</li>
<li>There is also an additional empty data file for both android and
iOS for testing empty data files.</li>
</ul>
<h2 id="conversation">Conversation<a class="headerlink" href="#conversation" title="Permanent link">&para;</a></h2>
<ul>
<li>The raw conversation data file contains data for 2 day.</li>
<li>The raw conversation data contains records with a sample of both
<code>datatypes</code> (i.e. <code>voice/noise</code> = <code>0</code>, and <code>conversation</code> = <code>2</code> )
as well as rows with for samples of each of the <code>inference</code> values
(i.e. <code>silence</code> = <code>0</code>, <code>noise</code> = <code>1</code>, <code>voice</code> = <code>2</code>, and <code>unknown</code>
= <code>3</code>) for each <code>epoch</code>. The different <code>datatype</code> and <code>inference</code>
records are randomly distributed throughout the <code>epoch</code>.</li>
<li>Additionally there are 2 - 5 records for conversations (<code>datatype</code>
= 2, and <code>inference</code> = -1) in each <code>epoch</code> and for each <code>epoch</code>
except night, there is a conversation record that has a
<code>double_convo_start</code> <code>timestamp</code> that is from the previous
<code>epoch</code>. This is to test the calculations of features across
<code>epochs</code>.</li>
<li>There is a raw conversation data file for both android and iOS
platforms (<code>plugin_studentlife_audio_android_raw.csv</code> and
<code>plugin_studentlife_audio_raw.csv</code> respectively).</li>
<li>Finally, there are also additional empty data files for both
android and iOS for testing empty data files</li>
</ul>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid" aria-label="Footer">
<a href="../testing/" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-footer-nav__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-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Testing
</div>
</div>
</a>
<a href="../../migrating-from-old-versions/" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-footer-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
Migrating from beta
</div>
</div>
<div class="md-footer-nav__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>
<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/julio_ui" 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>
<script src="../../assets/javascripts/vendor.49293c47.min.js"></script>
<script src="../../assets/javascripts/bundle.f4f0c901.min.js"></script><script id="__lang" type="application/json">{"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"}</script>
<script>
app = initialize({
base: "../..",
features: ["navigation.sections", "search.suggest", "search.highlight"],
search: Object.assign({
worker: "../../assets/javascripts/worker/search.0f64ce30.min.js"
}, typeof search !== "undefined" && search),
version: {"method": "mike"}
})
</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>
<script src="../../javascripts/extra.js"></script>
</body>
</html>