< Summary

Class:Radio
Assembly:Assembly-CSharp
File(s):D:/--UnityProject/VR/_____ISSTA 26/Edutainment-Escape-Room/Assets/Scripts/Test2/Radio.cs
Covered lines:9
Uncovered lines:37
Coverable lines:46
Total lines:78
Line coverage:19.5% (9 of 46)
Covered branches:0
Total branches:0
Covered methods:3
Total methods:5
Method coverage:60% (3 of 5)

Coverage History

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Radio()0%000100%
Start()0%000100%
VolumeChanged(...)0%0000%
TuningChanged(...)0%0000%
Tune()0%000100%

File(s)

D:/--UnityProject/VR/_____ISSTA 26/Edutainment-Escape-Room/Assets/Scripts/Test2/Radio.cs

#LineLine coverage
 1using System.Collections;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5public class Radio : MonoBehaviour
 6{
 7    public AudioSource MusicSource;
 8    public AudioSource NoiseSource;
 9
 10    public AudioClip[] MusicClips;
 11
 1712    float m_TuningRatio = 0.0f;
 1713    float m_VolumeRatio = 0.0f;
 14
 15    void Start()
 616    {
 617        Tune();
 618    }
 19
 20    public void VolumeChanged(DialInteractable dial)
 021    {
 022        float ratio = dial.CurrentAngle / dial.RotationAngleMaximum;
 23
 024        m_VolumeRatio = ratio;
 25
 026        Tune();
 027    }
 28
 29    public void TuningChanged(DialInteractable dial)
 030    {
 31        //off
 032        if (dial.CurrentAngle < 0.01f)
 033        {
 034            MusicSource.Stop();
 035            NoiseSource.Stop();
 036        }
 037        else if(!MusicSource.isPlaying)
 038        {
 039            MusicSource.Play();
 040            NoiseSource.Play();
 041        }
 42
 043        if(MusicClips.Length == 0)
 044            return;
 45
 046        float ratio = dial.CurrentAngle / dial.RotationAngleMaximum;
 047        float stepSize = dial.RotationAngleMaximum / MusicClips.Length;
 48
 049        float stepRatio = dial.CurrentAngle / stepSize;
 050        int closest = Mathf.RoundToInt(stepRatio);
 51
 052        float dist = Mathf.Abs(closest - stepRatio) / 0.5f;
 53
 054        if (closest == 0)
 055            dist = 1.0f;
 56        else
 057        {
 058            AudioClip c = MusicClips[closest - 1];
 59
 060            if (c != MusicSource.clip)
 061            {
 062                int sample = MusicSource.timeSamples;
 063                MusicSource.clip = c;
 064                MusicSource.timeSamples = sample;
 065            }
 066        }
 67
 068        m_TuningRatio = 1.0f - dist;
 69
 070        Tune();
 071    }
 72
 73    void Tune()
 674    {
 675        MusicSource.volume = m_TuningRatio * m_VolumeRatio;
 676        NoiseSource.volume = (1.0f - m_TuningRatio) * m_VolumeRatio;
 677    }
 78}