Skip to content

Commit

Permalink
Merge pull request #98 from mario-bermonti:define-new-data-model
Browse files Browse the repository at this point in the history
Define a new data model that uses data from the cognitive_data
  • Loading branch information
mario-bermonti committed Feb 28, 2024
2 parents 46eeaf6 + be8157e commit f27e639
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
32 changes: 32 additions & 0 deletions lib/src/digit_span_task/components/data/digit_span_task_data.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import 'package:cognitive_data/cognitive_data.dart';

/// Structured data collected for a single session.
/// Includes data about the [trials] (practice and experimental),
/// and metadata about the [session] and [device] used to collect the data.
class DigitSpanTaskData {
/// Data for all trials
late final List<Trial> trials;

/// Metadata about the session
late final Session session;

/// Metadata about the device on which the data was collected
late final Device device;

DigitSpanTaskData({
required this.trials,
required this.session,
required this.device,
});

@override
String toString() {
final representation = 'Session data:'
'\n${session.toString()}'
'\nDevice data:'
'\n${device.toString()}'
'\nTrials data:'
'\n${trials.toString()}';
return representation;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import 'package:cognitive_data/cognitive_data.dart';
import 'package:digit_span_tasks/src/digit_span_task/components/data/digit_span_task_data.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
test(
"DigitSpanTaskData.toString returns correct representation",
() {
TestWidgetsFlutterBinding.ensureInitialized();

/// arrange
/// session
final Session session = Session(
participantID: '101',
sessionID: '001',
startTime: DateTime.now(),
endTime: DateTime.now());

/// device
final Device device = Device(participantID: '101', sessionID: '001');

/// list trial
final List<Trial> trials = <Trial>[
Trial(
participantID: '101',
sessionID: '001',
trialType: TrialType.practice,
stim: '456',
response: '123'),
Trial(
participantID: '102',
sessionID: '002',
trialType: TrialType.practice,
stim: '789',
response: '987'),
];

/// DigitSpanTaskData
DigitSpanTaskData data = DigitSpanTaskData(
session: session,
device: device,
trials: trials,
);

/// expected
final expectedRepr = 'Session data:'
'\n${session.toString()}'
'\nDevice data:'
'\n${device.toString()}'
'\nTrials data:'
'\n${trials.toString()}';

/// act
/// tostring
final String actualRepr = data.toString();

/// assert
expect(actualRepr, expectedRepr);
},
);
}

0 comments on commit f27e639

Please sign in to comment.