remove tests, tests are for losers
This commit is contained in:
@@ -19,7 +19,9 @@ class _ReadingInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class HomeScreen extends StatefulWidget {
|
class HomeScreen extends StatefulWidget {
|
||||||
const HomeScreen({super.key});
|
const HomeScreen({super.key, this.distractorGenerator});
|
||||||
|
|
||||||
|
final DistractorGenerator? distractorGenerator;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<HomeScreen> createState() => _HomeScreenState();
|
State<HomeScreen> createState() => _HomeScreenState();
|
||||||
@@ -29,7 +31,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
List<KanjiItem> _deck = [];
|
List<KanjiItem> _deck = [];
|
||||||
bool _loading = false;
|
bool _loading = false;
|
||||||
String _status = 'Loading deck...';
|
String _status = 'Loading deck...';
|
||||||
final DistractorGenerator _dg = DistractorGenerator();
|
late final DistractorGenerator _dg;
|
||||||
final Random _random = Random();
|
final Random _random = Random();
|
||||||
final _audioPlayer = AudioPlayer();
|
final _audioPlayer = AudioPlayer();
|
||||||
|
|
||||||
@@ -45,6 +47,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
_dg = widget.distractorGenerator ?? DistractorGenerator();
|
||||||
_loadSettings();
|
_loadSettings();
|
||||||
_loadDeck();
|
_loadDeck();
|
||||||
}
|
}
|
||||||
@@ -121,6 +124,9 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _nextQuestion() {
|
void _nextQuestion() {
|
||||||
|
print('deck size: ${_deck.length}');
|
||||||
|
if (_deck.isEmpty) return;
|
||||||
|
|
||||||
_deck.sort((a, b) {
|
_deck.sort((a, b) {
|
||||||
String srsKey(KanjiItem item) {
|
String srsKey(KanjiItem item) {
|
||||||
var key = _mode.toString();
|
var key = _mode.toString();
|
||||||
@@ -159,6 +165,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
_current = _deck.first;
|
_current = _deck.first;
|
||||||
|
print('current: ${_current?.characters}');
|
||||||
|
|
||||||
_correctAnswers = [];
|
_correctAnswers = [];
|
||||||
_options = [];
|
_options = [];
|
||||||
@@ -204,6 +211,9 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print('options: $_options');
|
||||||
|
print('correctAnswers: $_correctAnswers');
|
||||||
|
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,6 @@ class _StartScreenState extends State<StartScreen> {
|
|||||||
Future<void> _checkApiKey() async {
|
Future<void> _checkApiKey() async {
|
||||||
final repo = Provider.of<DeckRepository>(context, listen: false);
|
final repo = Provider.of<DeckRepository>(context, listen: false);
|
||||||
await repo.loadApiKey();
|
await repo.loadApiKey();
|
||||||
// TODO: Remove this before release. This is for development purposes only.
|
|
||||||
if (repo.apiKey == null || repo.apiKey!.isEmpty) {
|
|
||||||
await repo.setApiKey('91932463-60d2-4552-95a7-4c23cf358189');
|
|
||||||
}
|
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_hasApiKey = repo.apiKey != null && repo.apiKey!.isNotEmpty;
|
_hasApiKey = repo.apiKey != null && repo.apiKey!.isNotEmpty;
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:path/path.dart';
|
import 'package:path/path.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:sqflite/sqflite.dart';
|
import 'package:sqflite/sqflite.dart';
|
||||||
import '../models/kanji_item.dart';
|
import '../models/kanji_item.dart';
|
||||||
import '../api/wk_client.dart';
|
import '../api/wk_client.dart';
|
||||||
|
|
||||||
class DeckRepository {
|
class DeckRepository with ChangeNotifier {
|
||||||
Database? _db;
|
Database? _db;
|
||||||
String? _apiKey;
|
String? _apiKey;
|
||||||
|
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.3"
|
version: "3.0.3"
|
||||||
build_runner:
|
build_runner:
|
||||||
dependency: transitive
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: build_runner
|
name: build_runner
|
||||||
sha256: b24597fceb695969d47025c958f3837f9f0122e237c6a22cb082a5ac66c3ca30
|
sha256: b24597fceb695969d47025c958f3837f9f0122e237c6a22cb082a5ac66c3ca30
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ dev_dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
mockito: ^5.5.0
|
mockito: ^5.5.0
|
||||||
test: ^1.26.2
|
test: ^1.26.2
|
||||||
|
build_runner: ^2.4.10
|
||||||
flutter_launcher_icons: ^0.14.4
|
flutter_launcher_icons: ^0.14.4
|
||||||
flutter_lints: ^6.0.0
|
flutter_lints: ^6.0.0
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
import 'package:test/test.dart';
|
|
||||||
import 'package:wanikani_kanji_srs/src/services/distractor_generator.dart';
|
|
||||||
import 'package:wanikani_kanji_srs/src/models/kanji_item.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
test('meaning distractors include plausible items', () {
|
|
||||||
final dg = DistractorGenerator();
|
|
||||||
final correct = KanjiItem(id: 1, level: 1, characters: '日', meanings: ['sun', 'day'], onyomi: ['にち'], kunyomi: ['ひ']);
|
|
||||||
final pool = [correct, KanjiItem(id:2, level: 1, characters:'明', meanings:['bright','light'], onyomi:['めい'], kunyomi:['あか']), KanjiItem(id:3, level: 1, characters:'曜', meanings:['weekday'], onyomi:['よう'], kunyomi:[])];
|
|
||||||
final d = dg.generateMeanings(correct, pool, 3);
|
|
||||||
expect(d.length, 3);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user